
Android 源码剖析
devyok
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
android中非aidl实现进程间通信(编写顺序的parcel写入与读出)
android开发人员对IBinder总是有一种神秘感,原创 2013-07-24 22:51:59 · 1734 阅读 · 2 评论 -
Android事务 IMMEDIATE与EXCLUSIVE模式
Transaction是数据库保证数据唯一性和一致性的技术,对于数据库一个或一组写操作要保证是一个原子操作,要么写成功,要不成功就需要使用Transaction,android使用事务的常见形式如下:SQLiteDatabase db = null;... db.beginTransaction();try { db.setTransactionSuccessful();原创 2013-07-31 21:41:58 · 5907 阅读 · 0 评论 -
Android APP存活检测
稍微深入了解过Android的开发者都知道,Android中每个APP的中的所有组件的生命周期状态都是由ActivityManagerService(简称:AMS)进程来维护的,所以当某个APP被kill或意外crash时,AMS进程会第一时间维护APP的组件。 我们今天不会看AMS进程维护APP的流程,只看AMS是通过什么手段第一时间得到的通知,我们是否能够将这种手段应用到我们的APP中,在多原创 2016-05-22 17:03:43 · 4797 阅读 · 0 评论 -
Android Barrier
为了让View能够有快速的布局和绘制,android中定义了一个Barrier的概念,当View在绘制和布局时会向Looper中添加了Barrier(监控器),这样后续的消息队列中的同步的消息将不会被执行,以免会影响到UI绘制,但是只有异步消息才能被执行。 所谓的异步消息也只是体现在这,添加了Barrier后,消息还可以继续被执行,不会被推迟运行。 如何使用异步消息,只有在创建Handler(构造原创 2016-01-28 18:38:22 · 5718 阅读 · 0 评论 -
Android使用SQLITE3 WAL模式
在sqlite3.7版本之后就支持write ahead logging(WAL)模式,开启WAL模式可以提高写入数据库的速度,读和写之间不会阻塞,但是写与写之间依然是阻塞的,但是如果使用默认的TRUNCATE模式,当写入数据时会阻塞android中其他线程或者进程的读操作,并发降低。 相反,使用WAL可以提高并发。 由于使用WAL比ROLLBACK JOURNAL的模式减少了写的I/O,所以写入原创 2013-08-01 22:49:44 · 12719 阅读 · 1 评论 -
Android Framework ActivityManagerService(1)
ActivityManagerService(简称:AMS)管理着应用程序中所创建的所有组件(Activity、Service等),每个组件的信息与组件对应的进程信息都在管理范围内,包括内存释放潜规则。为了实现组件的管理,每个组件的状态变化过程都需要通知AMS,组件间的跨进程通信(IPC)也由AMS来搭建。 所以AMS相当重要,在源码中随处可以。先看下AMS静态类结构图:原创 2013-07-26 20:29:47 · 1909 阅读 · 0 评论 -
Android 内存数据库
在android中数据库通常以文件的形式存储在磁盘中,而内存数据库是将数据驻留在内存中,因此可以作为一种缓存技术方案。 那么在android如何使用sqlite的内存数据库呢?看SQLiteDatabase的源码:/** * Create a memory backed SQLite database. Its contents will be destroyed *原创 2013-07-31 20:44:57 · 5624 阅读 · 2 评论