android基础 2.17-3.22

(2-17)
开机守护进程zygote(孵化器)创建vm,vm再去加载app,Manifest.xml为整个App主入口(PackageManager.java)
调试麻烦,更多用log
编译class--dex--打包apk--选择target设备--上传apk--安装apk--启动主activity

(2-18)
DDMS:Dalvik Debug Monitor Service
Device下拉为进程
Allocation Tracker内存跟踪
Log五类信息:v--d--I--w--E
可在命令行直接启动ddms
Log为类,所在包android.util,vdiwe为其静态方法

(2-19)
public static int v(String tag, String msg) {
return println_native(LOG_ID_MAIN, VERBOSE, tag, msg);
}
public static native int println_native(int bufID, int priority, String tag, String msg); //调c++系统类库
AndroidRuntime为虚拟机运行时错误
Tid:线程id
日志文件何时产生?
程序异常退出:uncaused exception
程序强制关闭:FC
程序无响应:ANR application no response
日志文件产生位置?
/data/log/
手机两种出厂模式:
Development 开发机,有root权限,支持打log,不考虑效率
User 不产生log文件
Log文件组成:系统基本信息、事件信息(与logcat内容同)、虚拟机信息(包括进程线程跟踪)
搜关键字:FATAL、ANR
后台App不消耗cpu,但占用内存,一般无需第三方软件将其杀死,因android本身有垃圾回收机制,当其发现资源紧缺,会按照优先级等将其kill(内存剩余20M与剩余100M速度理论一样)
Window内存紧缺时慢因虚拟内存原因

(3-21)
掌上设备小屏幕:HVGA(half 480*320)、QVGA(quarter 320*240)、WVGA(wide 800*480)
VGA--640*480
每个app要考虑的问题:①性能更快更灵敏②拒绝ANR③无缝(与第三方程序的交互,如来电话,前后台交互)④安全
数据传输高成本、高延迟、低速度、不稳定
何时ANR:①点击事件或按键事件5秒钟无响应 ②接收到消息后10秒钟没有处理返回
处理准则:io操作或复杂运算最好用异步(典型异步为多线程)

(3-22)
Android基于linux多用户OS,每个app都使用不同的用户(每个app都有唯一pid,启动app时系统首先建立一临时用户,临时用户再启动app,并非直接root启动app,该用户与该pid同生同灭,保证对自己权限足够大且各app间屏蔽优良)
默认情况下一个app一个userid,由系统设定,该userid对该app有权限进行所有操作
每个进程有自己的虚拟机实例,故每个app相互独立
默认情况,app都有自己linux进程,当资源不够时,系统会决定何时关闭
例外:可给两个app共享同一userid,使彼此间共享资源
App可请求访问系统资源,如通讯录、短信,但安装时需被授权
------/
四大组件均需继承注册
activity上添加各种view组件
Service如下载数据、播放音乐,不生成UI,不可见
数据为app私有,contentProvider提供多app间数据交互机制,其暴露出一些标准API对数据进行操作(不考虑内部存储细节)
BroadcastReceiver负责对外部事件做出响应,不生成UI,不可见
App可通过sendBroadcast()将自己的Intent广播出去,其它app通过自身BroadcastReceiver截获后处理
------/
重要对象Intent(activity、Service、BroadcastReceiver都离不开它)
startActivity(intent);
startService(intent);
sendBroadcast(intent);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值