本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址。

本文对之前手机卫士开发进行一个小结。

1、SplashActivity
版本名称的展示,从清单配置文件中获取版本名称,PackageManager
服务端新版本的检测(本地版本号<服务器版本号)
展示logo

2、手机防盗
sim卡绑定:每一款手机都会有相应的卡的序列号,一旦替换掉原有电话卡,序列号会发生改变

3、手机卫士分包
基础课程分包方式,每一个类包名,
com.itheima.db
com.itheima.db.dao 组件方式

业务逻辑划分

例如对于icbc

com.icbc.money
com.icbc.meeting
com.icbc.travel

组件划分(四大组件:activity,服务,广播,内容提供者(内容解析者))

mobilesafe

com.wuyudong.mobilesafe.activity
com.wuyudong.mobilesafe.service

数据库操作
com.wuyudong.mobilesafe.db
com.wuyudong.mobilesafe.db.dao

工具类
com.wuyudong.mobilesafe.utils

自定义控件(android原有控件,不能满足需求),自定义组合控件
com.wuyudong.mobilesafe.view
com.wuyudong.mobilesafe.ui.widget

4、应用去头
方式一:每个类都需要去添加此代码
在setContentView(R.layout.activity_splash);
前设置以下代码
requestWindowFeature(Window.FEATURE_NO_TITLE);

方式二:统一去掉所有activity的头

@android:style/Theme.Light.NoTitleBar方式去头,使用老版本主题样式
修改默认样式文件为
<style name="AppTheme" parent="AppBaseTheme">
<!-- 在去头的同时,还保留高版本的样式主题 -->
<item name="android:windowNoTitle">true</item>
</style>

5、packageManager获取当前应用版本名称,版本号
版本名称:用于展示(阴影效果,颜色)

版本号:用于和服务端的apk比对,

如果服务器端的版本号>本地版本号 弹出对话框提示用户更新
服务器版本号<=本地版本号 直接进入应用程序主界面

6、网络请求发送

客户端发送请求
服务端以流的形式返回数据,数据需转换成字符串,(json)

7、json解析

看见什么解析什么,解析相应字段的时候,一定要去copy不要手写

8、json解析异常情况

json一旦解析出现错误,通过断点调试是最好的调错方式
断点调试常用按钮:
绿色:跳转到下一个断点
红色:断开本次断点调试
下一步:执行当前代码,执行到下一步
跳转到方法内部执行

9、xutils使用过程

(1)导入xutils的jar包
(2)添加xutils需要使用的权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
(3)获取HttpUtils对象,下载指定链接地址的apk
(4)HttpUtils对象调用download(下载链接地址,下载后放置文件的路径,下载过程中方法的回调
onStart()
onloading()
onSuccesd()
onFail() )
(5)下载apk后的安装过程,

10、打包生成apk过程
(1)生成签名文件,并且指定所在位置
(2)使用生成的签名文件,给工程打包生成一个apk
11、安装apk注意事项
升级
1,注意事项:将原有应用覆盖掉,包名一致

2,签名一致???
从Eclipse运行至手机上的应用,使用的是bin目录下的应用,使用debug.keystore签名应用

手机卫士版本一,右键运行至手机的,所以使用签名是debug.keystore
手机卫士版本二,单独打包,生成相应签名文件heima74keystore

生成一个heima74keystore作为签名文件的apk

签名一致,包名不同:生成两个手机卫士apk,包名是应用的唯一性标志
签名不同,包名一致:覆盖安装失败

版本更新流程如下:

Android 手机卫士--阶段小结1的更多相关文章

  1. Android 手机卫士--参照文档编写选择器

    本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.ht ...

  2. Android 手机卫士--设置界面&功能列表界面跳转逻辑处理

    在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959. ...

  3. Android 手机卫士--确认密码对话框编写

    本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. ...

  4. Android 手机卫士--签名文件说明&包名说明

    在<Android 手机卫士--打包生成apk维护到服务器>一文中,实现了新版本的apk到服务器,当打开客户端apk的时候,发现有新版本,提示更新.还实现了利用xutils工具实现了从服务 ...

  5. Android 手机卫士--弹出对话框

    在<Android 手机卫士--解析json与消息机制发送不同类型消息>一文中,消息机制发送不同类型的信息还没有完全实现,在出现异常的时候,应该弹出吐司提示异常,代码如下: private ...

  6. android手机卫士、3D指南针、动画精选、仿bilibli客户端、身份证银行卡识别等源码

    Android精选源码 android身份证.银行卡号扫描源码 android仿bilibili客户端 android一款3D 指南针 源码 android手机卫士app源码 android提醒应用, ...

  7. Android 手机卫士--安装过程中点击回退按钮

    本文地址:http://www.cnblogs.com/wuyudong/p/5903707.html,转载请注明源地址. 在手机卫士之前的版本升级的对话框中: 有的用户暂时不想更新,没有点击“稍后再 ...

  8. Android 手机卫士--xutils说明与下载方法使用

    xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词) ...

  9. Android 手机卫士17--缓存清理

    清理单个应用缓存 通过反射调用方法 需要权限:android.permission.DELETE_CACHE_FILES. 以上权限为系统权限,手机卫士应用为用户应用,不能拿到此权限 换思路: 调用系 ...

随机推荐

  1. java中遇到过的String的一些特性

    1.string对象是final的? String str="asdfdf"; str.replace("as",""); System.o ...

  2. 【Swift学习】Swift编程之旅---属性(十四)

    属性关联特定类.结构或枚举的值,存储属性将存储常量和变量作为实例的一部分,计算属性用于计算一个值,而不进行存储.计算属性可以用于类.结构体和枚举里,存储属性只能用于类和结构体.存储属性和计算属性通常用 ...

  3. 用redux完成事务清单

    今天再来一个例子,我们从组件开始. App.js import React, { PropTypes } from 'react' import { bindActionCreators } from ...

  4. JS实现简易的计算器

    JS可以做的事多了,那就用来实现一个计算器吧 看看手机中的计算器,分为普通计算器和科学计算器     自认脑袋不够大,就实现一个普通版本的吧(支持正负数加减乘除等基本连续的运算,未提供括号功能) 看看 ...

  5. 局部页面传值Model

    1:新建个局部页面,将这里页面的Model数据传递过去,在局部页面进行和一般页面一样的操作就行. 这里和HTML.Action不一样,对于HTML.action来说,它是新建了一个action来进行传 ...

  6. MVP的PV模式与SC模式

    MVC是现今挺被推崇的一种架构模式,而MVP在MVC的基础对视图与模型上再解耦,使结构和各自的功能也有所改变.在去年鄙人也尝试了一下使用MVP做了一个小Demo,作为了MVC的一个变体,MVP还分了两 ...

  7. Java的HashSet类

    如果要查找一个集合中是否包含了某个对象,那么就需要把这个对象和这个集合中的每个对象依次进行比较和判断,直到找到这个对象为止,或者把所有对象都比较一次为止(如果最后一个对象才是要查找的对象,或者集合中没 ...

  8. [修复] Firemonkey 画线问题(Android & iOS 平台)

    问题:官方 QC 的一个 Firemonkey 移动平台画线问题: RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing proble ...

  9. IOS个人帐号推送证书创建

    (IOS个人帐号推送证书制作所有步骤: 可以直接将产品推送证书和开发者推送证书一起制作到一个Identifier帐号下) 一. 首先需要创建一个id:有推送功能的(App ID Suffix)只有它才 ...

  10. Scalaz(23)- 泛函数据结构: Zipper-游标定位

    外面沙尘滚滚一直向北去了,意识到年关到了,码农们都回乡过年去了,而我却留在这里玩弄“拉链”.不要想歪了,我说的不是裤裆拉链而是scalaz Zipper,一种泛函数据结构游标(cursor).在函数式 ...