[mobilesafe] 10_所有应用展示&复杂ListView&PopupWindow;&分享卸载启动&快捷图标获取&程序锁布局&程序锁功能&看门狗总结

Android 4.0

所有应用展示&复杂ListView&PopupWindow&分享卸载启动&快捷图标获取&程序锁布局&程序锁功能&看门狗
1、系统所有应用程序信息界面展示
1)ListView:两个优化
a)convertView:复用以前的view
b)ViewHolder:保存获取到的组件的引用
2)Handler+Message
3)一行显示不下,滚动显示 FocusedTextView
android:ellipsize="marquee"
android:singleLine="true"
2、复杂的ListView显示用户程序和系统程序数据信息
区分用户程序和系统程序
getCount():控制ListView显示条目的个数
getView():控制ListView每个条目显示的View对象
3、程序管理器的PopupWindow界面展示
轻量级的Activity
类似对话框
注意:一定要设置PopupWindow窗体的背景.
否则,动画不能播放,不能获取焦点等问题
4、PopupWindow分享软件
<action android:name="android.intent.action.SEND" />
5、PopupWindow卸载软件
<action android:name="android.intent.action.DELETE" />
6、PopupWindow启动软件
启动第一个Activity
7、查询创建快捷图标的activity.
PackageManager
packageManager.queryIntentActivities(intent, flags);
8、程序锁界面布局
 复杂ui在activity里面的显示.(重点)
   a) 几个帧布局 控制隐藏和显示
   b) fragment
   c) 业务逻辑 控制setContentView();
9、程序锁UI实现
a)布局文件定义
b)获取应用程序的数据(子线程中获取)
c)获取完毕,发送消息给主线程
d)消息处理器更新UI,设置ListView的数据适配器
e)为每一个item设置点击事件
f)被点击时,移除或移进,添加或删除加锁数据库对应的记录
g)为移除和移进设置动画效果,更加好看。
10、程序锁功能——看门狗原理
1、由于是一个不停的监视,所以需要一个后台服务,
不停的监视当前打开的Activity,ActivityManager
2、由于是服务,所以需要一个配置来开启服务
Service(程序设置中配置)
3、获取到最新打开的Activity的packagename,然后和加锁应用的包名进行比较,如果在加锁应用的数据库中,那么跳出来一个Activity,让用户输入密码,才能进入加锁的应用中去,否则不给进。

activityManager程序管理器
获取当前任务栈最前面的任务.