`
xgn1128
  • 浏览: 13303 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

android学习笔记

 
阅读更多

1. http://developer.android.com/guide/是学习android最好的参考。

 

2. Activity开发一般采用MVC模式,在.xml描述布局和组件,组件中的ID等属性会自定编译进R.java.

 

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

 

5. 有时候真机在DDMS中被识别成???,需要使用adb命令重新启动服务,ubuntu下为:sudo adb kill-server sudo adb start-server.

 

6. SharedPreferences本质是通过文件存储一些数据,文件可以在data/data/shared_preferences目录下找到。这种方式可以跨应用。通过设置RZControllerApplication.getAppContext().getSharedPreferences(name,mode)中的mode属性为:MODE_WORLD_READABLE ||MODE_WORLD_WRITEABLE 

 

7. 可以通过OpenFileOutput和OpenFileInput方法,来操作文件进行持久化。同样可以在data/data目录下找到,貌似也不能跨应用 

 

8. Android的DB相关的关键的类就是SQLiteOpenHelper、SQLiteDatabase、Cursor这3个。一般需要自己实现SQLiteOpenHelper的onCreate()方法,这个类类似于ConnectionFactory。SQLiteDatabase类似于JDBC中的Connection接口。查询结果都是cursor。如果应用中的数据要共享给其他应用一定要使用context Provider

 

9. 在Activity中获取到Cursor后,要执行一个startManagingCursor()方法,进行托管 

 

10. res中文件的分包原则:1.不支持2级子目录,2。定义顺序是:MCC and MNC>Language and region>Screen size>Screen aspect>Screen orientation>Dock mode>Night mode>Screen pixel density (dpi)...详细及最新顺序参看以下:http://developer.android.com/guide/topics/resources/providing-resources.html。

 

11. 找到数据库文件后,可以在adb shell下,用sqlite3命令连接上数据库进行操作

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

20. service是跑在所属application的主thread中,不会默认新开thread,所以需要编码创建新thread

 

21. 不能在工作线程中去更新UI,使用Activity.runOnUiThread(Runnable);View.post(Runnable);View.postDelayed(Runnable, long)或者AsyncTask

 

22. 网络流量记录在/proc/net/dev文件下,可以用cat命令查看,也可以写程序读取解析来分析流量,在android2.2之后的平台,可以用TracfficStats类来获取流量信息 

 

23. 可以通过继承Application类,并在manifest文件中配置,来使用应用内共享的全局变量 

 

24. 与服务端交互时,可以传输比较少的数据量,然后在两端分别解析。举例来说,只通过网络传送1、2、3,然后在两端解析为1-success,2-fail,3-exception。达到节省流量的目的。类似于自定义协议 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics