Chinaunix首页 | 论坛 | 博客
  • 博客访问: 320263
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 321
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-04 16:09
文章分类

全部博文(124)

文章存档

2014年(124)

分类: 嵌入式

2014-08-26 16:47:14

一、 第一章 使用Android平台基础开发 
1. 简介: 
1) Android本义:机器人; 
2) Android意义:Google与2007年11月5日宣布的基于Linux平台的开源手机操作系统名称; 
3) Linux平台组成操作系统、中间件、用户界面和应用软件; 
4) Android的标志:绿色 、机器人; 
2. Android架构: 
1) 和其它操作系统一样,Android的系统采用的是分层的架构; 
2) 架构组成:(从高层到底层)( 
a) 应用程序层; 
b) 应用程序框架层:隐藏在每个应用后面的是一系列的服务和系统; 
c) 系统运行库层; 
d) Linux核心层; 
3. Android应用程序: 
1) 简称:Android App,是一种运行在Android平台的应用软件; 
2) SDK  :  software development kit; 
3) ADB : Android Debug Bridge,调试桥的作用;是一个客户端-服务器端程序; 
4) AAPT : Android Asset Packaging  Tool,在SDK platform-tools 目录,用于打包apk文件,构成一个Androi应用程序; 
5) AVD : Android Virtual Device:android虚拟设备; 
4. Android的环境搭建: 
1) JDK安装; 
2) Eclipse安装; 
3) Android SDK安装; 
4) ADT安装; 
5) 创建AVD; 
二、 第二章 使用Activity打造Android窗体 
1. Activity简介: 
1) 一个Activity是一个应用程序组件,提供一个屏幕,供用户进行交互; 
2) 一个应用程序由多个Activites组成,关系:松耦合关系; 
3) 在系统中的Activity被一个Activity栈所管理;特点:先进后出; 
4) Activity是单独的,用于处理用户操作;几乎所有的Activity都和用户打交道; 
2. Android 的生命周期: 
1) Activity四种本质区别的状态: 
a) 活动状态:在屏幕前台; 
b) 暂停状态:被透明或非全屏遮盖; 
c) 停止状态:完全被另一个Activity抹杀; 
d) 重置状态; 
3. Android中资源的访问: 
1) 代码中使用资源:android.R.资源文件种类.资源ID; 
2) XML文件中引用:@android:资源种类/资源ID; 
3) 提示:raw资源文件中存放任意类型的资源,目录中的资源不会被编译,可以通过调用Resource.openRawResource(int id) 获取资源二进制流; 
4. Android中的菜单: 
1) 选项菜单 options menu:点击设备上的Menu弹出的菜单; 
2) 上下文菜单:context menu: 长按视图控件出现的菜单; 
3) 子菜单 sub menu: 点击子菜单将弹出子菜单选项;子菜单不支持嵌套; 
4) 提示:任何视图组件的创建方式都由两种:代码创建和布局文件创建; 
5. Android简单用户界面设计: 
1) Android中借用了java的UI设计思想,包括事件响应机制和布局管理; 
2) View和ViewGroup采用了组合设计模式,可以使得”部分-整体”同等对待; 
3) 对话框种类:Builder 
a) 警告对话框; 
b) 进度对话框; 
c) 日期选择对话框: 
d) 事件选择对话框: 
4) 提示信息:Toast.make().show(); 
5) 事件处理: 
a) 事件处理机制:事件、事件源、事件监听器; 
6) 事件处理步骤: 
a) 创建监听器: 
b) 给要响应事件的组件注册事件监听器: 
c) 在事件处理方法中编写实现代码; 
6. 对话框详解: 
1) 带编辑框的对话框: 
2) 将布局文件放到对话框中:getLayoutInflater.inflater(R.layout.ID,null); 
3) 注册:builder.setView(布局组件对象); 
4) 列表对话框;setItems(); 
5) 带单选按钮对话框: 
a) builder.setSingleChoiceItems(); 
6) 带复选框的对话框: 
a) New builder().setMultichoiceItems(); 
b) 事件:OnMultichoiceListener; 
7. 菜单详解: 
1) 选项菜单: 
a) 实现方法:onCreateOptionMenu(); 
b) 动作实现:onOptionsItemSelected(); 
2) 子菜单: 
a) 实现方法:onCreateOptionMenu(); 
b) 动作实现:onOptionItemSelected(); 
3) 上下文菜单: 
a) 实现方法:onCreateContexteMenu(); 
b) 动作实现:onContextItemSelected(); 
c) 组件注册:registerContextMenu(View v); 
三、 第三章 使用Intent让窗体之间对话 
1. 窗体之间的跳转 
1) Intent intent = new Intent(); 
2) intent.setClass(); 
3) startActivity(); 
2. 窗体之间传递数据 
1) Bundle对象的实现:用于封装数据 
2) 将Bundle绑定到Intent的对象; 
3) 提示:Intent对象可以携带任意数据类型,包括对象; 
3. 实现数据双向交互: 
1) 启动方式:startActivityForResult(); 
2) 重写方法:onActivityResult(); 
3) 被请求Activity实现:setResult(); 封装数据,并指明回去的路,同一个Intent对象;finish();标志完成任务; 
4. Android高级组件设计:布局管理 
1) View类 
a) View为所有可视化类的基类,主要提供了控件绘制和事件处理; 
b) ViewGroup也是View的子类,但是可以充当其它控件的容器; 
2) 线性布局:LinearLayout 
a) 最简单的布局,水平或垂直布局方式; 
b) 通过设置weight控制各个控件在容器中的相对大小; 
3) 表格布局:TableLayout 
a) 行和列的形式管理; 
b) Shrinkable:列收缩 
c) Stretchable: 列拉伸; 
d) Collapsed :列隐藏; 
4) 相对布局:RelativeLayout 
a) 子控件的位置相对兄弟控件或父控件决定; 
b) 避免出现循环依赖; 
5) 帧布局FrameLayout: 
a) 帧布局大小由子控件最大的控件决定; 
6) 绝对布局:AbuoluteLayout 
a) 根据坐标大小定位; 
b) Android:layout_x 
c) Android:layout_y 
d) 控件容器不再负责管理其子控件的位置;   
5. 组件设计: 
1) TextView 
2) EidtView 
3) AutoCompleteTextView: 自动输入内容组件; 
a) 使用数组适配器绑定数据; 
4) 按钮组件: 
a) Button 
b) ImageButton 
c) RadioButton :一个组中只能选择一个单选; 
d) ToggleButton :textOn/textOff 
e) CheckBox 
5) 按钮组件事件: 
a) onTouch 触摸事件 
b) onFocusChange 焦点变化事件; 
c) onKey 键盘事件; 
6) 日期和时间组件: 
a) DatePicker :用于输入日期的控件,包括年月日; 
b) TimePicker :用于输入时间的控件,包括时钟分钟; 
c) AnalogClock :用于显示时钟的组件,表盘方式; 
d) DigitalClock :用于显示时钟的组件,数字方式,时分秒; 
7) ImageView 
8) ListView 
9) Spinner: 示一个下拉列表,通过设置adapter数据适配器显示; 
10) ScrollView: 动视图组件,只能包含一个组件,可以定义一个布局; 
11) HorizontalScrollView:水平滚动视图组件,支持水平滚动; 
12) GridView : 图控件,用于显示一个表格,采用二维方式来显示列表项,每个单元格是一个View对象; 
13) Gallery: 像列表,与GidView的区别是只能显示一行,支持滚动效果; 
14) ImageSwitcher : 以以动画方式切换图像; 
15) TabHost: 件;对屏幕进行分页显示控件; 
四、 第四章 使用Service进行后台服务 
1. 简介:四大组件之一; 
2. 特点: 
1) 生命周期长; 
2) 没有可视化界面,无法与用户直接交互; 
3) 后台运行; 
4) 数据交互; 
3. 何时用:希望该应用在后台运行; 
4. Service分类: 
1) 本地service 
a) 概念:和当前应用在同一个进程中的service,彼此之间拥有共同的内存区域,则对某些数据的共享特别的方便和简单; 
2) 远程service 
a) 主要用于不同进程之间的service访问; 
b) 共享数据方式:使用AIDL工具,android interface description language ,接口描述语言;; 
c) RPC简介:Remote Procedure Call ,远程进程调用是指在一个进程里,调用另外一个进程里面的服务; 
5. 使用service步骤: 
1) 继承service类,实现自己的service; 
2) 在androidManifet.xml中注册; 
a)  
3) 在activity中进行启动、绑定、解绑或者停止service; 
五、 第五章 使用BroadcastReceiver 进行广播 
1. 自定义BroadcastReceiver 
1) 简介:BroadcastReceiver 是指广播接收器,处理的是系统级别的; 
2) 使用方法: 
a) 构建Intent对象;Intent intent = new Intent(); 
b) intent.setAction();  参数:广播动作名称 
c) sendBroadcast(intent); 
3) 总结: 
a) 既然要使用广播,就要一个发出广播的类(可以有多个),构建Intent对象,然后sendBraocast(intent对象); 
b) 需要一个接收广播的类,这个类是继承了BroadcastRecevier,首先要接收intent中的信息; 
c) 再者必须进行注册后才能使用;(四大组件之一) 
4) 提示:可以使用代码的方式来注册或注销一个广播接收器; 
a) IntentFilter filter = new IntentFilter(); 
b) 实例化:继承了BroadcastReceiver 的类; 
c) 注册:registerReceiver(r,filter); 
d) 注销:unregisterReceiver(r); 
2. 通知与通知管理器 
1) Notifaction 和 NotificationManager的使用:通知和通知管理器; 
2) 作用:实现可视化信息的显示,通过它们可以显示广播信息的内容以及图标和震动等信息(在状态栏上); 
六、 第六章 存储数据 
1. SharedPreferences: 
1) 概念:一种轻型的数据存储方式;key-value 
2) 作用:存储一些简单的配置信息; 
3) 存储位置:/data/data/包/shared_prefs 
4) 特点:SharedPreferences对象本身只能存储,不能修改; 
5) 提示:存储修改是通过Eidtor对象实现; 
6) 缺陷:只能存储boolean .int.float.long.String 五种简单的数据类型; 
7) 优势:方便、简洁; 
2. File:文件存储 
1) 从resource中的raw文件夹中获取文件,并读取数据 
a) 注意:资源文件只能读不能写; 
b) 获取流的方法:InputStream in = getResources().openRawResource(R.raw.a); 
2) 从asset中获取文件并读取数据: 
a) 流的获取:InputStream in = getResources().getAssets().open(文件名); 
3) 从sdcard中读文件: 
a) 存储位置:/mnt/sdcard/目录下 
b) 流的获取:FileInputStream in = new FileInputStream(fileName); 
c) 访问权限: 
i.  
d) 写入权限: 
i.  
4) 内存中操作文件: 
a) 保存路径:\data\data\com.test\files\里面; 
b) 流的获取:FileOutputStream fout = openFileOutput(filename,MODE_PRIVATE); 
5) 提示:openFileOutput 是在raw里编译过的,FileOutputStream 是任何文件都可以; 
3. SQLite: 
1) 简洁:一个非常流行的嵌入式数据库,支持SQL语言,利用内存少,性能好; 
2) 特点:和其他数据库最大的不同是对数据类型的支持; 
3) 不支持的SQL功能:外键约束、嵌套、联表查询; 
4) Android 中集成了SQLite数据库; 
a) 获取SQLiteDataBase 实例: 
i. SQLiteDataBase db = getReadableDatabase(); 
ii. SQLiteDataBase db = getWriteableDatabase(); 
七、 第七章 使用ContentProvider 共享数据 
1. 概述:Android应用继承了ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据; 
2. URI:代表要操作的数据; 
3. UriMatcher 类使用介绍: 
1) 用于解析URI; 
2) 方法:match(); 用于匹配URI , 返回指定的返回码; 
3) AddURI(uri,表,返回码);  添加规则; 
4. ContentUris 使用介绍; 
1) withAppendId(uri,id); 用于为路径加上ID部分; 
2) parseId(uri);  从该路径部分获取ID; 
5. ContentResolver 操作ContentProvider: 
1) 对ContentProvider中的数据进行添加、删除、修改和查询操作时、需要使用ContentResolver; 
6. 自定义ContentProvider: 
1) 建立数据的存储系统; 
2) 扩展ContentProvider类; 
3) 在应用程序中注册: 四大组件之一; 
7. 提示:不管数据表中有没有其他的唯一标识一个记录的字段,都应该定义一个_id ,字段来唯一标识一个记录; 
8. INTEGER PRIMARY KEY AUTOINCREMENT; 
9. 注意:因为ContentProvider 可能被不同的进程和线程调用,所以这些方法必须时线程安全的; 
八、 第八章  多媒体应用 
1. Android 音频与视频的播放 
1) 播放的文件种类: 
a) 存储在应用程序中的资源; 
b) 本地资源; 
c) ContentProvider资源; 
d) 网络的URL流中的资源; 
2) 媒体播放步骤: 
a) 初始化; 
b) 完成准备播放; 
c) 开始播放; 
d) 播放时进行暂停、停止,以及定位; 
e) 播放完成;  
3) 音频的播放: 
a) 方式一:new MediaPlayer().setDataSource(); 设置文件源; 
b) 方式二:MediaPlayer.create(); 通过uri获取地址; 
c) 提示:文件sd根目录一定要进行prepare(); 方法,为硬件准备; 
4) 视频的播放: 
a) 视图控制器:VideoView; 
b) 媒体控制器:MediaController :提供按钮 ; 
5) 访问网络上的Audio 对应的M3U文件: 
a) 根据URL访问网络; 
b) 对网络文件进行解析; 
c) 显示解析结果; 
d) 知识点: 
i. HttpClient client = new DefaultHttpClient(); 
ii. HttpGet get = new HttpGet(url); 
iii. HttpResponse response = client.execute(get); 
6) Android  中音频与视频的录制; 
九、 第九章 使用互联网组件与服务器交互 
1. Http 网络编程: 
1) Socket 套接字: 
a) 概念:是用于描述网络上的一个设备中的一个进程或者应用程序的,Socket 由IP 地址和端口号两部分组成;IP地址定位设备,端口号定位应用程序或者进程; 
b) 提示:Server端会一直监听Socket中的端口直到由请求为止,收到请求后返回一个Socket对象,Server 和 Client 可以通过Socket进行操作; 
c) ServerSocket.accept();返回一个连接的Socket对象; 
2) HttpURLConnection : 
a) 简洁:是继承自URLConnection 的一个抽象类,在HTTP编程时,来自HttpURLConnection的类是所有操作的基础; 
b) 获取方式:HttpURIConnection conn = (HttpURIConnection) new URL(“http://baicu.com”).openConnection(); 
3) WebView使用: 
a) 浏览器控件:每个开发环境都具备的; 
b) 添加权限:android.permission.INTERNET; 
c) 获取焦点:requestFocus(); 
阅读(1637) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~