摘要:
可重用的activity中的模块,避免activity切换,有自己的生命周期、状态、back stack。3.0引入Fragment目的:支持大屏幕中动态灵活的UI设计。1、实质:在onCreateView()中返回的是view;类似自我实现的view栈。DialogFragment类似自我实现的dialog栈。优点:加入了显式的生命周期。2、添加fragment到activity: xml的layout中每个<fragment>需要赋予唯一的android:id/tag(非ui);3、FragmentTransaction:一系列fragment操作add、remove、repl 阅读全文
摘要:
引入目的:在用户没有同app交互时可运行在后台;如果目的是在交互时不打断main thread可以使用thread,分两种:1、startService(intent):app结束后也可运行。通常执行单个操作、不返回结果。实现onStartCommand()。stopSelf()、stopService()停止。2、bindService():所有绑定的app unbind后,service被销毁;可C-S模式的IPC,跨进程通信--发送请求、获取结果。实现onBind(),返回IBinder用于与C端交互。3、service在main thread中运行,需执行耗时操作应该创建新thread 阅读全文
摘要:
1. xml: 静态、较确定;2. view:runtime动态改变;3. Adapter:把datasource绑定到AdapterView的子类;如:从array获取数据,convert每项data为一个可以加到AdapterView layout 中的view;定制性较强,使用广泛,常见的有: AdapterView的子类:ListView、GridView;setAdapter(adapter,每个item的layout,dataSrc); Adapter的子类:ArrayAdapter、SimpleCursorAdapter;data改变后调用notifyDataSetChang.. 阅读全文
摘要:
ui事件在Event传播链中通过EventHandler处理,Event传播链根据ui事件而不同,EventHandler如返回true则表示consume了该event,不再传播。1. click:不需要返回结果;2. long click:上下文菜单;3. key:传播链从view树top-down,因此可在顶端捕获事件;4. touch:有多个action,view树down-up传播,注意返回结果;5. focus:可在xml中给trackball设置nextFocusUp, nextFocusRight等动作; 阅读全文
摘要:
Content Provider:C-S架构,主要用于IPC数据, S端类似Service端,实现ContentProvider; C端使用ContentResolver。S端:需求:给其它app提供复杂数据;作为copy的数据源;提供搜索建议;URI:authority保证唯一性,可用包名.provider path: 阅读全文
摘要:
通过LoaderManager中的回调简化Activity与Fragment的数据加载,ContentProvider数据源通过CursorLoader来简化加载,通过SimpleCursorAdapter简化数据显示。类似Ios的tableView的数据加载效果。 阅读全文
摘要:
1、默认同一个app的所有组件运行在同一个process中,<application>、<activity>、<service>中的process属性可以设置组件所属的process;默认使用<application>中的包名process,每个组件可以设置自己的process值,设置私有或者公共进程名。同一个userID和签名证书的app可共享process;IPC:内部实现RPC,Android将c端方法调用转化为OS底层可理解的数据,传递给远程进程地址空间S端,s端重新组装数据,执行方法,将结果再逆向给c端。2、进程重要性优先级--用户pr 阅读全文
摘要:
1. 横竖屏切换:ctrl + F11 阅读全文
摘要:
1、通过Intent启动的3种组件:activity、service、broadcast receiver。Intent启动activity: startActivity(): startActivityForResult():setResult()返回结果。Intent启动service: startService(): bindService():Intent启动broadcast server: sendBroadcast(): sendOrderedBroadcast(): sendStickyBroadcast():Intent:一组系统启动组件需要的信息。组件名:组件类全名。设置: 阅读全文
摘要:
1. 找到db:通常在/data/data/com.providers.contacts/databases/*.db;以/data/system/accounts.db为例; adb shell, cd /data/system/databases/;2. 打开/创建db:sqlite3 accounts.db3.查看元数据,以.开头的命令:.tables列出所有数据表;.schema查看db结构;.schema accounts查看表accounts的结构;.dump accounts逆向输出accounts表数据的insert SQL语句;4. SQL语句:以分号;结尾 select . 阅读全文