一、开发流程介绍:对于应用开发的流程,其实谷歌给出了一些建议:
1、部署环境
2、开发
3、调试和测试环节
4、发布
二、打包前的准备
1、需要准备的物品
1.用户协议
2.签名文件
3.程序图标
4.其他东西
2、需要配置的项目
1.清理日志调用,版本代号以及版本名称
2.编译程序,签名程序
3.发布前彻底测试一遍
4.检查资源是否最新,例如assets目录下的文件、图片的更新
5.确保远程服务器和服务准备就绪
6.其他检查项
3、差异化功能的检查
1.不同渠道的功能
2.不同Android版本的业务功能
3.不同手机型号的不同业务
三、打包时的混淆
1、代码混淆是否开启
2、代码混淆文件是否配置正确(采用第三方库的话需要配置相应文件)
3、好处:由原来有意义的字符变成abc,字节码空间减小,有个优化过程,并且逆向的时候有个保护的作用
4、混淆示例:反编译京东的APK
5、原始代码:反编译口袋记账的APK
四、发布前的回归测试
1、屏幕分辨率
2、不同版本
3、核心功能(主流程)
4、向前兼容性(之前版本升级后)
5、新版本检测以及升级功能
6、用户统计
7、推送
8、分享
9、广告系统:关掉Debug模式,正常模式才能计费
10、名称,网址,logo等之类的“颜面”类
11、其他
五、程序版本名称和版本代号VersionCodeAndName
1、是什么
1.应用信息
2.aapt工具
(1)appt工具的位置:/sdk/build-tools/平台版本/aapt.exe
(2)命令:aapt dump badging /Users/phoenix/Downloads/teamtalk.apk | grep version回车即可列出包名、版本号、版本名
(3)windows下的类似linux下的grep命令:findstr
2、使用
1.版本升级
2.显示给用户
3.Android系统内部比较
3、升级:AndroidManifest.xml
1.版本在清单文件中是必须要配置的项,VersionCode必须是正整数,升级的时候原则上是比它大就可以,我们一般都是把它+1
2.VersionName可以是任意字符串
4、在代码中获取版本
六、什么是混淆
1、什么是代码混淆
1.在程序中应用比较普遍的一种加密技术,在Html、JS中都有用到混淆技术,在Android中基本上是使用ProGuard工具,将代码变为功能等价但是难于阅读的代码。
(1)去掉语义
(2)清理无用代码
(3)压缩和优化
2.带来的问题
(1)问题1:代码调试难
(2)问题2:反射受到阻碍
3.说明:只是提供了反编译的难度,仍然可以反编译,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全,不能完全依赖于混淆,可能还要做加密的工作
2、混淆的作用
1.保护代码
2.优化代码
3.压缩代码
3、ProGuard官网地址:http://developer.android.com/tools/help/proguard.html
七、Proguard使用和配置
1、清理日志
2、混淆前后文件大小不同
3、介绍如何工作
1.本地文档:file://……/sdk/tools/proguard/docs/index.html
2.主要做了压缩、优化、混淆、预校验的工作,这四项是可选的,也可以只做某一样
4、说明ProGuard如何使用
1.开启
2.配置
(1)proguard-android.txt
(2)关于WebView可参考帖子:由于混淆引起的JS问题http://stackoverflow.com/questions/7424510/uncaught-typeerror-when-using-a-javascriptinterface
(3)\sdk\tools\proguard目录下有两个模板文件,里面有详细的配置描述
1>proguard-android.txt
2>proguard-android-optimize.txt
3.混淆后生成的文件:在proguard_logs文件夹下有四个文件
(1)dump.txt
(2)mapping.txt
(3)seeds.txt
(4)usage.txt
4.如何做发布后的Debug:ProGuard Gui的介绍
(1)利用\sdk\tools\proguard\bin目录下的工具proguardgui.bat
(2)双击运行打开Java窗体程序,点击ReTrace,Browse进来Mapping文件,将混淆的报错日志拷贝到Obfuscate stack trace中,点击ReTrace!按钮即可显示还原后的日志
八、签名文件
1、APK的生成流程
1.生成没有签名的APK文件
2.签名APK
3.对齐APK包
2、签名文件
1.什么是签名:有一个身份识别的作用
2.Debug签名:默认签名文件位置:C:\Users\机器名\.android\debug.keystore
4.如何生成:两种生成方式
(1)集成开发环境
(2)命令行工具keytool
九、使用Eclipse打包
1、使用Eclipse普通打包
2、使用Eclipse混淆打包
十、发布上传apk
1、准备提交内容
2、到各大应用市场申请上架
1、部署环境
2、开发
3、调试和测试环节
4、发布
二、打包前的准备
1、需要准备的物品
1.用户协议
2.签名文件
3.程序图标
4.其他东西
2、需要配置的项目
1.清理日志调用,版本代号以及版本名称
2.编译程序,签名程序
3.发布前彻底测试一遍
4.检查资源是否最新,例如assets目录下的文件、图片的更新
5.确保远程服务器和服务准备就绪
6.其他检查项
3、差异化功能的检查
1.不同渠道的功能
2.不同Android版本的业务功能
3.不同手机型号的不同业务
三、打包时的混淆
1、代码混淆是否开启
2、代码混淆文件是否配置正确(采用第三方库的话需要配置相应文件)
3、好处:由原来有意义的字符变成abc,字节码空间减小,有个优化过程,并且逆向的时候有个保护的作用
4、混淆示例:反编译京东的APK
5、原始代码:反编译口袋记账的APK
四、发布前的回归测试
1、屏幕分辨率
2、不同版本
3、核心功能(主流程)
4、向前兼容性(之前版本升级后)
5、新版本检测以及升级功能
6、用户统计
7、推送
8、分享
9、广告系统:关掉Debug模式,正常模式才能计费
10、名称,网址,logo等之类的“颜面”类
11、其他
五、程序版本名称和版本代号VersionCodeAndName
1、是什么
1.应用信息
2.aapt工具
(1)appt工具的位置:/sdk/build-tools/平台版本/aapt.exe
(2)命令:aapt dump badging /Users/phoenix/Downloads/teamtalk.apk | grep version回车即可列出包名、版本号、版本名
(3)windows下的类似linux下的grep命令:findstr
2、使用
1.版本升级
2.显示给用户
3.Android系统内部比较
3、升级:AndroidManifest.xml
1.版本在清单文件中是必须要配置的项,VersionCode必须是正整数,升级的时候原则上是比它大就可以,我们一般都是把它+1
2.VersionName可以是任意字符串
4、在代码中获取版本
六、什么是混淆
1、什么是代码混淆
1.在程序中应用比较普遍的一种加密技术,在Html、JS中都有用到混淆技术,在Android中基本上是使用ProGuard工具,将代码变为功能等价但是难于阅读的代码。
(1)去掉语义
(2)清理无用代码
(3)压缩和优化
2.带来的问题
(1)问题1:代码调试难
(2)问题2:反射受到阻碍
3.说明:只是提供了反编译的难度,仍然可以反编译,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全,不能完全依赖于混淆,可能还要做加密的工作
2、混淆的作用
1.保护代码
2.优化代码
3.压缩代码
3、ProGuard官网地址:http://developer.android.com/tools/help/proguard.html
七、Proguard使用和配置
1、清理日志
2、混淆前后文件大小不同
3、介绍如何工作
1.本地文档:file://……/sdk/tools/proguard/docs/index.html
2.主要做了压缩、优化、混淆、预校验的工作,这四项是可选的,也可以只做某一样
4、说明ProGuard如何使用
1.开启
2.配置
(1)proguard-android.txt
(2)关于WebView可参考帖子:由于混淆引起的JS问题http://stackoverflow.com/questions/7424510/uncaught-typeerror-when-using-a-javascriptinterface
(3)\sdk\tools\proguard目录下有两个模板文件,里面有详细的配置描述
1>proguard-android.txt
2>proguard-android-optimize.txt
3.混淆后生成的文件:在proguard_logs文件夹下有四个文件
(1)dump.txt
(2)mapping.txt
(3)seeds.txt
(4)usage.txt
4.如何做发布后的Debug:ProGuard Gui的介绍
(1)利用\sdk\tools\proguard\bin目录下的工具proguardgui.bat
(2)双击运行打开Java窗体程序,点击ReTrace,Browse进来Mapping文件,将混淆的报错日志拷贝到Obfuscate stack trace中,点击ReTrace!按钮即可显示还原后的日志
八、签名文件
1、APK的生成流程
1.生成没有签名的APK文件
2.签名APK
3.对齐APK包
2、签名文件
1.什么是签名:有一个身份识别的作用
2.Debug签名:默认签名文件位置:C:\Users\机器名\.android\debug.keystore
4.如何生成:两种生成方式
(1)集成开发环境
(2)命令行工具keytool
九、使用Eclipse打包
1、使用Eclipse普通打包
2、使用Eclipse混淆打包
十、发布上传apk
1、准备提交内容
2、到各大应用市场申请上架