[mobilesafe] 13_day01总结

Android 4.0

day01总结

1. 代码组织结构. 两种方式.
 
2. PackageManager 获取应用程序的清单文件的信息.
 
3. URL HttpUrlConntion
 
4. 解析XML  pull解析器
 
5. handler+ message 消息机制    handler.postDelay() 执行延时的动作
 
6. AlertDialog.Builder
 
7. 几种上下文.
 
8. 应用程序的签名 替换安装 签名一致.
 
9. FocuedTextView 假的获取到焦点的textview 实现文本的滚动显示
 
10. gridview 类似 listview  adapter
 
11. 状态选择器  不同的状态显示不同的图片
 
12. 自定义的组合控件 9 大步骤(难)
 
13. 关闭自动更新 SharedPreference 保存配置信息.
自己总结:
 
1、Splash界面-从服务器获取最新版程序信息,并提醒用户下载
a) 定义activity_splash.xml布局
b) 从服务器上去获取最新的版本,子线程CheckVersionTask
   其实就是从服务器上获取xml文件,并解析出来xml文件中的内容,返回
c) 如果当前版本和服务器版本不一致,提示用户更新
 
2、提示用户是否更新,并进入主界面
a)如果版本一致,loadHomeUi(),进入主界面,2秒钟延迟,操作
b)如果版本不一致,弹出对话框,提示用户更新showUpdateDialog()
 
3、应用程序的自动升级安装
a)如果版本不一致,弹出对话框,提示用户更新showUpdateDialog()
b)如果用户点击"下次再说",不做操作,直接loadHomeUi()进入主界面
c)如果用户点击"立即下载",那么使用afinal框架到服务器上去下载最新apk。
  使用Afinal框架下载,
  权限:android.permission.WRITE_EXTERNAL_STORAGE
d)下载完毕后,然后自动安装,利用系统的PackageInstaller安装,installApk
 
4、常用上下文区别
a) Activity.this
b) getApplicationContext()
c) getContext()
 
5、应用程序签名
 
6、自定义滚动文本
a) 可以聚焦的组件,如Button,触摸聚焦时,文字会动
android:ellipsize="marquee"
android:singleLine="true"
b) 不可聚焦的组件,如TextView,自定义TextView,重写isFocused(),返回true
 
7、主界面布局GridView
GridView使用
 
8、自定义状态选择器
1、 背景-点击状态改变
a) res\drawable\home_item_states_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@color/gray" /> <!-- pressed -->    
    <item android:state_focused="true"
          android:drawable="@color/gray" /> <!-- focused -->
    <item android:drawable="@android:color/transparent" />
</selector>
b)res\layout\grid_home_item.xml
android:background="@drawable/home_item_states_selector"
2) 图片改变
a)advanced_tools_pressed_seletcor.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/advance_tools_pressed" />
    <item android:state_focused="true"
          android:drawable="@drawable/advance_tools_pressed" />
    <item android:drawable="@drawable/advance_tools" />
</selector>
b)HomeActivity.java
private int[] icons = { R.drawable.safe_theft, R.drawable.callmsg_guard,
                R.drawable.app_manager, R.drawable.task_manager,R.drawable.net_manager,
                R.drawable.phone_antivirus,R.drawable.system_optimize,
                R.drawable.advanced_tools_pressed_seletcor,
                R.drawable.app_settings };
 
9.自定义状态组合控件-方法和属性(难)
 
10.开启关闭应用程序的自动更新操作 hander.postDelayed();