ANR异常
application not responding,Activity和Service是5秒,BroadCastReceiver是10秒。
安卓界面刷新频率是60Hz,每秒刷新60次,在UI线程耗时操作会导致卡顿
将耗时操作:访问网络,Socket通讯,SQL语句,复杂的计算逻辑放在子线程中去。通过handler.sendMessage,runOnUIThread,AsyncTask方式进行更新UI,保证用户界面的操作流畅度,如果耗时操作需要让用户等待,那么在界面上显示进度条
判断是否有SD卡
Enviroment.getExternalStorageState().equals(Enviroment.MEDIA_MOUNTED)
dvm和jvm
- dvm:
- dvm是指dalvik虚拟机,是谷歌为安卓平台设计的java虚拟机,每一个安卓应用程序都运行在一个独立的dalvik虚拟机实例上,每个app都是一个独立的进程,防止在虚拟机崩溃的时候所有程序被关闭,dvm上的专有文件格式是.dex
- Zygote是一个特殊的dvm进程,它是虚拟机实例的孵化器,它在系统启动时产生,它自身会完成虚拟机的初始化,类库的加载,当系统需要一个虚拟机实例时迅速复制自身
- jvm
- jvm是java虚拟机,jvm上运行java字节码,后缀是.class
adb,ddms,aapt
- adb:android debug bridge,程序调试工具
- ddms: dalvik debug monitor service,程序执行情况查看器
- aapt: android asset packaging tool,用于apk的打包
如何对Android 应用进行性能分析
DDMS中有很多工具
- traceview:数据采集分析工具
- heap:检查内存泄漏
- allocation tracker:内存分配的栈跟踪信息
android数据存储方式有那些
文件存储,xml,sharedPreference,SQLiteDatabase,contentProvider,网络
android的安全机制
- 访问通讯录,打电话,定位都需要androidManifest.xml文件注册
- android代码混淆保护开发者的劳动成果
- android是Linux内核,因此Linux对文件的权限控制同样适用于安卓。每个安卓程序都有自己的 "data/data/包名" 文件夹,只能由程序本身访问
android的进程级别有哪些
- 前台进程
- 可见进程
- 服务进程
- 后台进程
- 空进程
如何播放网络视频
除了使用Android 提供的MediaPlayer 和VideoView 外通常还可以使用第三方开源万能播放器:VitamioPlayer。该播放器兼容性好,支持几乎所有主流视频格式。
网友评论