logo资料库

安卓开发重点知识点总结.doc

第1页 / 共125页
第2页 / 共125页
第3页 / 共125页
第4页 / 共125页
第5页 / 共125页
第6页 / 共125页
第7页 / 共125页
第8页 / 共125页
资料共125页,剩余部分请下载后查看
☆JAVA技能
有良好的JAVA基础,熟练掌握面向对象思想:
理解面向对象:
1、特点:
2、面向对象的三大特征:封装,继承、多态
熟练使用集合、IO流及多线程
一、集合:
1、特点:存储对象;长度可变;存储对象的类型可不同;
2、集合框架:
2)Collection
(1)List:有序的;元素可重复,有索引
(2)Set:无序的,无索引,元素不可重复
3)Map集合:
(1)HashTable:底层数据结构是哈希表,不可存入null键和null值。同步的
(2)HashMap:底层数据结构是哈希表;允许使用null键和null值,不同步,效率高
TreeMap:
2.3、Map集合两种取出方式:
2.5、集合工具类:
2.6、Collection和Collections的区别:
3、Arrays:
二、IO流
1、结构:
2、流操作规律:
三、多线程
--(进程和线程:
1、创建线程的方式:
2、线程状态:
3、多线程安全问题:
4、线程的同步:
5、wait和sleep的区别:(执行权和锁区分)
Android下 的进程与线程:
☆Android技能
熟练掌握Android四大组件,常用的布局文件,自定义控件等
清单文件:
一、ContentProvider 内容提供者
1、特点
2、创建内容提供者
示例代码(内容提供者类):
3、内容解析者ContentResolver
4、监听内容提供者的数据变化
5、区别Provider/Resolver/Observer
1)ContentProvider:内容提供者
2)ContentResolver:内容解析者
3)ContentObserver:内容观察者
二、Activity活动
描述:
1、创建Activity
2、启动Activity
3、启动时传递数据
4、关闭时返回数据
5、生命周期
6、横竖屏切换与信息的保存恢复
7、启动模式
8、内存管理
三、BroadcastReceiver 广播接收者
1、定义广播接收者
2、广播的分类
3、广播接收者的注册方式
4、发送广播
1)发送普通广播
2)发送有序广播
5、广播的生命周期
四、Service服务
1、创建与使用Service
2、生命周期
3、开启服务的2种方式
4、服务混合调用生命周期
五、Android四大组件
熟悉掌握ListView的优化及异步任务加载网络数据
一、异步任务加载网络数据:
1、使用原因:
2、执行的顺序:
3、执行过程:
1)、onPreExecute():
2)、doInBackground():
3)、onProgressUpdate():
4)、onPostExecute():
5)、execute():
3、实现原理:
1)、线程池的创建:
2)、任务的执行:
3)、消息的处理:
4、需要注意的是:
示例代码:
二、ListView优化:
ListView的工作原理
一、复用convertView,减少findViewById的次数
1、优化一:复用convertView
2、优化二:缓存item条目的引用——ViewHolder
示例代码:
二、ListView中数据的分批及分页加载:
1、准备数据:
2、设置ListView的滚动监听器:setOnScrollListener(new OnScrol
3、对不同的状态进行处理:
示例代码:(详细代码请参见【6.3-ListView数据的分批加载.doc】)
三、复杂ListView的处理:(待进一步总结)
1、定义两个(或多个)集合
2、在初始化数据(填充数据)中初始化两个集合
3、在数据适配器中,复写对应的方法
4、数据类型的判断
示例代码:
四、ListView中图片的优化:
1、处理图片的方式:
2、异步加载图片基本思想:
原理:
Tips:这里可能出现图片乱跳(错位)的问题:
Adapter示例代码:
3、内存缓冲机制:
五、ListView的其他优化:
1、尽量避免在BaseAdapter中使用static 来定义全局静态变量:
2、尽量使用getApplicationContext:
3、尽量避免在ListView适配器中使用线程:
示例代码:
六、ScrollView和ListView的冲突问题:【摘自网络】
解决方法之一:
示例代码:
熟悉XML/JSON解析数据,以及数据存储方式
一、XML解析
1.解析 *****
示例代码:
2.生成 *
示例代码:
(二)JSON解析
1、JSON书写格式:
2、举例:
3、在Android中使用json
4、JSON解析:
5、生成JSON对象和数组:
精通Android下的Hendler机制,并能熟练使用
知识要点 
一、说明
二、一些知识点
消息处理机制原理:
一、大致流程:
二、详细解释:
1、准备Looper对象
2、创建消息Message:
3、创建Handler对象
4、Handler对象发送消息:
5、轮询Message
6、处理Message
场景一:
执行过程:
1、Looper.prepare()
2、new Hnader():
3、Looper.loop():
4、创建子线程,handler.sendMessage(msg)
场景二:
1、子线程中创建Handler,并处理消息
1)创建Handler:
①、创建轮询器:
②、将消息队列加入到轮询器上。
③、回调和异步加载。(此处不做分析[其实我还没分析好])
需要注意的是界面更新:
2)、消息处理:
3)、Looper.loop():
2、创建子线程,发送消息handler.sendMessage(msg)
对各种引用的简单了解
1.1 临界状态的处理
1.2对象的引用的级别
1.2.1强引用(StrongReference)
1.2.2软引用(SoftReference)
1.2.3弱引用(WeakReference)
1.2.4虚引用(PhantomReference)
1.3 ReferenceQueue与软引用结合使用
图片的缓存
高效加载大图片
使用图片缓存技术
Android照片墙的实现:
能够对图片的优化进行相应的处理
1、利用“三级缓存”实现图片的优化
2、图片过大导致内存溢出:
解决:
方法1: 主要是加上这段:等比例缩小图片
方法2:对图片采用软引用,及时地进行recyle()操作
1、为何使用软引用:
2、软引用的特点:
3、引用队列ReferenceQueue:
4、构建高级缓存:
掌握OOM异常的处理,并可以对应用进行相应的优化
一、内存溢出如何产生的
1、资源释放问题:
2、对象内存过大问题:
3、static:
针对static的解决方案:
4、线程导致内存溢出:
针对这种线程导致的内存泄露问题的解决方案:
二、避免内存溢出的方案:
1、图片过大导致内存溢出:
解决:
方法1: 主要是加上这段:等比例缩小图片
方法2:对图片采用软引用,及时地进行recyle()操作
2、复用listView:
方法:对复杂的listview进行合理设计与编码:
3、界面切换
方法1:单个页面,横竖屏切换N次后 OOM
方法2: 在页面切换时尽可能少地重复使用一些代码
4、内存分配:
方法1:Android堆内存也可自己定义大小和优化Dalvik
常见的内存使用不当的情况
1、查询数据库没有关闭游标
2、构造Adapter时,没有使用缓存的 convertView
3、Bitmap对象不在使用时调用recycle()释放内存
4、释放对象的引用
5、其他
三、Android性能优化的一些方案
1、优化Dalvik虚拟机的堆内存分配
2、基础类型上,因为Java没有实际的指针,在敏感运算方面还是要借助NDK来完成。
3、图形对象优化:
4、处理GIF动画:
5、对于大多数Android手机没有过多的物理按键可能我们需要想象下了做好手势识别 GestureD
四、图片占用进程的内存算法简介
五、内存监测工具 DDMS --> Heap
用 Heap监测应用进程使用内存情况的步骤如下:
熟悉Android中的动画,选择器,样式和主题的使用
一、动画:
1)Frame 帧动画 AnimationDrawable
2)Tween动画:
分类:
1、透明动画(alpha.xml)
2、缩放动画(scale.xml)
3、位移动画(translate.xml)
4、旋转动画(rotate.xml)
5、组合动画(all.xml)
动画篡改器interpolator
xml实现动画插入器:
二、样式与主题
1、样式
1)、定义样式
2)、继承样式,在