安卓基础

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的进程级别有哪些

  1. 前台进程
  2. 可见进程
  3. 服务进程
  4. 后台进程
  5. 空进程

如何播放网络视频

除了使用Android 提供的MediaPlayer 和VideoView 外通常还可以使用第三方开源万能播放器:VitamioPlayer。该播放器兼容性好,支持几乎所有主流视频格式。

你可能感兴趣的:(安卓基础)