• ADB进程
  • adb指令
  • adb install xxx.apk
  • adb uninstall 包名
  • adb devices
  • adb start-server
  • adb kill-server
  • adb shell –> 进入Linux的命令行
  • ls –> 显示文件及包名
  • ps –> 列举所有运行的进程
  • rm –> 删除文件
  • cd –> 切换目录
  • adb push 文件路径/文件名 sdcard/文件名 –> 把文件放进去
  • adb pull sdcard/文件名 –> 把文件拉出来,在哪个里面执行就拉倒哪
  • Android开发环境
  • sdk –> 软件开发工具包
  • eclipse –> Android Studio 代替了eclipse
  • adt:eclipse插件 –> Android开发工具
  • DDMS –> 调试服务
  • 查看Android设备
  • 控制台输出
  • 给模拟器打电话发短信
  • Android项目目录结构
  • assets:较大资源文件,没有资源id,使用io流读取
  • libs:第三方jar包
  • res:资源文件,有资源id
  • 按钮点击事件
  • 设置侦听
  • onClick属性
  • android五种常见布局
  • 线性 –> 竖直是上下无效,水平是左右无效
  • 相对
  • 帧 –> 只能上下左右对齐父元素
  • 表格:TableRow –> 表示行,子节点表示列
  • 绝对
  • Log –> 自定义等级和Tag
  • 控制台输出分5个等级
  • Log.v –> 打印冗余信息
  • Log.e
  • 单元测试框架
  • AndroidTestCase
  • 指令集【instrumentation : targetPackage 目标的包,及你要测哪个包】和类库【uses-library】
  • 数据存储
  • 文件读写:内部存储、外部存储路径
  • SharedPreference
  • 键值对形式保存数据
  • 保存到xml文件
  • 数据库SQLite数据库
  • ContentProvider
  • 把数据保存在别人的私有文件中
  • XML生成解析
  • XmlSerializer,序列化器
  • DOM(将整个文档全部加载到内存中)、SAX、PULL 【后两个都是读取一行解析一行,单Google推荐用pull】
  • pull事件类型
  • START_DOCUMENT
  • END_DOCUMENT
  • START_TAG
  • END_TAG
  • TEXT
  • SQLite数据库
  • SQLiteOpenHelper:创建数据库
  • 构造方法的4个参数
  • SQLiteDatabase:增删改查
  • 主键:_id
  • ListView:用于显示列表
  • 条目是一个View对象,可以用布局文件填充而来
  • 设置Adapter
  • getCount:获取条目总数
  • getView:获取View对象作为条目显示
  • 条目一旦划出屏幕,就会被缓存
  • 下一次getView方法调用时,会把缓存传进去
  • 网络请求
  • URL对象封装网址
  • 打开连接对象
  • 对连接对象做设置
  • 请求方式get/post
  • 连接/读取超时
  • 发送请求,获取相应码
  • 服务器通过流把请求的数据交给客户端
  • 消息队列机制
  • 主线程[本身就是一个死循环]创建时,就会创建MessageQueue和Looper对象
  • 程序员创建Handler对象
  • 消息队列中有消息,Looper【有Looper线程才能创建消息队列】就把消息取出,交给Handler,触发handleMessage调用,子线程没有Looper,只能自己创建,这样才能创建Handler
  • 发送消息:sendMessage
  • 把消息发到创建Handler的那个线程的消息队列
  • 消息携带数据
  • what
  • obj
  • setData:Bundle
  • Android四大组件
  • Activity
  • service
  • broadcastReceiver
  • contentProvider
  • Activity
  • 生命周期:
  • oncreate
  • onstart
  • onresume
  • onpause
  • onstop
  • ondestroy
  • onrestart
  • 启动方式:
  • startActivity
  • startActivityForResult –> 销毁时返回数据
  • 回调onActivityReslut –> 返回数据
  • 启动模式:
  • 标准 –> 默认,stander
  • singleTop –> 不在栈顶就创建
  • singleTask –> 栈中有就不创建,将它上面的都销毁掉
  • singleInstance –> 系统会用到【来电界面】,我们一般不用,保证内存中只有一个
  • Intent
  • Activity跳转
  • Service启动
  • 广播发送
  • 显式意图:指定目标Activity/Service的字节码 【本地应用,直接用.class等】
  • 隐式意图:设置intent对象去匹配intent-filter 【远程应用】
  • 可以封装数据
  • 八大基本数据类型及其数组
  • String及其数组
  • bundle
  • 实现了序列化接口的对象
  • Serializable –> java提供,本地化、持久化保存对象或与服务器做数据交互用它
  • Parcelable –> Android 自己定义,用于内存中传递
  • 广播接收者
  • 通过intent-filter定义接收什么广播
  • 可以设置优先级,对于有序广播有效
  • 有序广播
  • 按照优先级区分接收的先后顺序
  • 无序广播
  • 不分先后顺序
  • 不能拦截,不能修改广播内容
  • Service
  • 启动方式
  • startService
  • 服务进程
  • 服务跟Activity没有一毛钱关系
  • onCreate-onStartCommand-onDestroy
  • bindService
  • 进程优先级不变
  • 服务和Activity同生共死
  • onCreate-onBind-onUnbind-onDestroy
  • 进程优先级
  • 前台进程
  • 可见进程
  • 服务进程
  • 后台进程
  • 空进程
  • 先杀优先级低的,相同优先级,LRU【最近最少使用】算法定生死
  • AIDL –> 安卓接口定义语言,用于进程通信
  • 把接口文件后缀名改成aidl
  • aidl中默认都是public,不需要也不允许定义访问修饰符
  • 中间人对象继承Stub
  • 把aidl复制到启动者的应用中,包名必须一致
  • 绑定时获得中间人对象,Stub.asInterface强转
  • ContentProvider:
  • 共享私有数据
  • 提高安全性,可以定义共享规则
  • Uri匹配器
  • 匹配Uri末尾携带的内容
  • ContentObserver:接收通知,内容提供者改变数据库时会发通知
  • 播放器
  • MediaPlayer:音乐视频
  • SurfaceView:视频播放
  • surfaceHolder
  • 可见时创建,不可见时销毁
  • 摄像头
  • 启动系统自带的Activity
  • 自定义
  • Camera:负责拍照
  • SurfaceView:显示预览界面
  • 图片处理
  • 加载图片时会解析图片的所有像素信息
  • 内存中使用ARGB保存像素信息,也就是32位色,占用4个字节
  • 压缩图片后再加载