1、事件分发机制
http://blog.csdn.net/pi9nc/article/details/9281829
2、handler机制
http://blog.csdn.net/stonecao/article/details/6417364
3、屏幕适配
http://blog.csdn.net/lmj623565791/article/details/45460089
4、Activity生命周期:onrestart之后是ontart然后是onResume
5、支付宝sdk接入、RSA加密。微信支付http://blog.csdn.net/a1014474011/article/details/46817661
6、地图SDK的使用
7、加载图片会发生OOM怎么解决
http://blog.csdn.net/yyj984551002/article/details/9628219
2,使用内存缓存技术LRUCache。
内存缓存技术对那些大量占用应用程序宝贵内存的图片提供了快速访问的方法。其中最核心的类是LruCache (此类在android-support-v4的包中提供) 。这个类非常适合用来缓存图片,它的主要算法原理是把最近使用的对象用强引用存储在 LinkedHashMap 中,并且把最近最少使用的对象在缓存值达到预设定值之前从内存中移除。
8、内存泄露和内存溢出的区别?
泄露是申请的内存无法释放,你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。
1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。
4. 隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。
9、Android 系统中 GC什么情况下会出现内存泄露呢?
出现情况:
1. 数据库的cursor 没有关闭
2.构造adapter 时,没有使用缓存 contentview 衍生listview 的优化问题-----减少创建 view的对象,充分使用 contentview,可以使用一静 态类来优化处理getview的过程
3.Bitmap 对象不使用时采用recycle()释放内存
4.activity中的对象的生命周期大于activity
调试方法: DDMS==> HEAPSZIE==>dataobject==>[Total Size]
10、安卓的安全、加密
11、AIDL
12、谈谈 android android android android数据存储方式。
Android提供了5种方式存储数据:
(1)使用 SharedPreferences存储数据;它是 Android提供的用来存储一些简单配置信
息的一种机制,采用了XML格式将数据存储到设备中。只能在同一个包内使用,不能在不
同的包之间使用。
(2)文件存储数据;文件存储方式是一种较常用的方法,在 Android中读取/写入文件的
方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()
方法来读取设备上的文件。
(3)SQLite 数据库存储数据;SQLite 是Android所带的一个标准的数据库,它支持SQL
语句,它是一个轻量级的嵌入式数据库。
(4)使用 ContentProvider存储数据;主要用于应用程序之间进行数据交换,从而能够让
其他的应用保存或读取此Content Provider 的各种数据类型。
(5)网络存储数据;通过网络上提供给我们的存储空间来上传(存储)和下载(获取)我们存储
在网络空间中的数据信息。
13、线程池的优化
http://www.tuicool.com/articles/yANnq2N
Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
14、