`

android第三周小结

 
阅读更多
1. 系统自带的通讯录应用,联系人名单保存在data/data/com.android.providers.contacts/databases/contats2.db,通过select * from contacts可以查询

2. 系统中的每个AppWidget都有一个数字标识

3. android系统中的每个application跑在单独的Process中

4. activity、service、ContentProvider必须在manifest中声明,但是BroadcastReceiver可以在代码中动态注册

5. activity的back stack是一个Last In First Out模型

6. activity最重要的生命周期方法是onCreate()和onPause(),前者需要完成activity的初始化工作,后者需要完成重要数据的持久化

7. 在屏幕横竖屏切换的时候,activity会被destroy,然后recreate

8. 从android3.0之后,引入了fragment和loader机制,之前的平台是没有的

9. android系统有多任务机制,设备的HOME页面是大多数任务的开始页面。有多个task,也就有多个back stack

10. 在back stack中的activity永远不会重新排列,所以如果一个activity被多次引用,将会创建多个实例

11. 当由于系统释放资源,而destroy掉activity之后,系统依然会记得activity在back stack中有一席之地。当重新显示该activity时,需要recreate,而不是resume

12. 可以在manifest中配置task管理机制,但一般推荐使用默认机制

13. 通过startService()方法启动的service,生命周期长于启动它的component。通过bound方式绑定的service,生命周期和绑定它的component相同

14. service是跑在所属application的主thread中,不会默认新开thread,所以需要编码创建新thread
分享到:
评论
1 楼 kyfxbl 2011-07-19  
15. service如果绑定到一个前台activity,则不太可能被kill。如果一个service被kill之后,会在系统获得足够的资源之后restart

16. 如果不需要同时处理多个请求,也不需要绑定到activity,可以继承IntentService,比直接继承Service方便一些

17. 用startService()方法启动的service的生命周期是onCreate()->onStartCommand()->onDestroy()。用bind()方法启动的service的生命周期是onCreate()->onBind()->onUnbind()->onDestory()

18. android自带的ContentProvider在android.provider包中声明了

19. 使用Cursor抛出了CursorIndexOutOfBoundsException,是因为没有先调用cursor.moveToFirst()方法

20. 所谓Intent的late run-time binding,其实是指的implicit intent,如果是explicit intent,就没有延迟绑定

21. implicit intent的action和data通常是成对出现的

22. activity如果要接受implicit intent的话,其intent-filter一定要加上DEFAULT CATEGORY。因为如果使用了implicit intent,android会自动调用intent.addCategory()方法,加上DEFAULT CATEGORY。而且every category in the Intent object must match a category in the IntentFilter。所以如果没有在intent-filter里加上DEFAULT CATEGORY,则implicit intent无法匹配通过

23. Intent匹配过程总结:如果是explicit intent,则直接找到指定的组件,如果没有找到,则抛出异常。如果是implicit intent,则android系统会把所有的组件都列出来,然后和intent设置的action、category、data逐一匹配。如果只有一个匹配结果,则直接调用,如果没有匹配结果,就抛出异常,如果有多个匹配结果,则让用户选择使用哪个组件来响应intent

相关推荐

    安卓知识小结第一章

    【Android知识小结第一章】 本章节主要涵盖了Android开发中的一些核心知识点,特别是针对面试中常见的问题进行了总结。以下是对这些知识点的详细解释: 1. 开启多进程:在Android中,可以通过在AndroidManifest....

    Android问题小结

    本资料包"Android问题小结"是针对Android开发者的一个宝贵资源集合,涵盖了多个方面的知识,包括事件分发机制、设计模式、图层管理、属性动画、框架使用、应用安全以及个人职业发展规划等。 首先,"技术交流--...

    Android异步加载图像小结 (含线程池,缓存方法).rar

    在Android应用开发中,图像加载是一个常见的...以上就是关于“Android异步加载图像小结(含线程池,缓存方法)”的主要知识点。在实际应用中,开发者应结合项目需求,合理选择和优化这些技术,以提供流畅的用户体验。

    Android客户端性能软件测试小结

    此外,市场上还有许多第三方性能监测工具,如Firebase Performance Monitoring、New Relic等,它们能提供更全面的性能指标和详细的性能报告。 在评估客户端性能是否达标时,测试人员需要综合考虑各项指标,并根据...

    android开发揭秘PDF

    第3章 Android程序设计基础 3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命周期 3.3 Android程序U设计 3.4 小结 第4章 用户界面开发 4.1 用户界面开发详解 4.1.1 用户...

    Android异步加载图像小结 (含线程池,缓存方法).zip

    在Android开发中,异步加载图像是一项至关重要的技术,特别是在处理大数据量的...通过阅读"Android异步加载图像小结 (含线程池,缓存方法).doc"和解压"项目说明.rar"中的示例代码,可以更深入地学习和实践这些技术。

    Android异步加载图像小结 (含线程池,缓存方法).doc.zip

    "Android异步加载图像小结(含线程池,缓存方法)"这个文档详细讲解了如何在Android环境中高效、异步地加载图片,同时利用线程池和缓存策略优化性能。以下是对这些知识点的详细说明: 1. **异步加载**: - 异步...

    android数据库小结

    ### Android数据库操作详解 #### 一、概述 在软件开发领域,数据管理是不可或缺的一环。对于Android开发者而言,SQLite数据库作为内置的关系型数据库解决方案,为应用提供了强大的数据存储功能。本文将详细介绍...

    Android项目异步加载图像小结 (含线程池,缓存方法).rar

    3. 缓存方法:详细讲解了在Android项目中实现图像缓存的几种常用方法,包括内存缓存、磁盘缓存和第三方库缓存。这些缓存方法可以有效减少网络请求次数,降低服务器压力,提高图像加载速度。 4. 实践案例分析:通过...

    《Android应用开发揭秘》附带光盘代码.

     第3章 Android程序设计基础  3.1 Android程序框架  3.1.1 Android项目目录结构  3.1.2 Android应用解析  3.2 Android的生命周期  3.3 Android程序U设计  3.4 小结  第4章 用户界面开发  4.1 用户界面开发...

    Android(经典实例).

    第3章 Android高级控件的开发及应用 第4章 手机用户界面的开发 第5章 手机通信服务及手机控制 第6章 手机的自动服务功能 第7章 手机文件I/O与数据库的应用 第8章 手机网络应用 第9章 手机的Google服务功能 第10章 ...

    android开发入门教程

    第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 14.1 关于豆瓣网和豆瓣网API 14.1.1 豆瓣网介绍 14.1.2 豆瓣网API介绍 14.1.3 豆瓣网API认证 14.1.4 豆瓣网API快速入门 14.1.5 豆瓣网API...

Global site tag (gtag.js) - Google Analytics