版本迭代,混淆,多渠道打包,应用上架,应用加固

版本迭代,混淆,多渠道打包,应用上架,应用加固


版本迭代

1,检测本地应用版本号

2,向服务器发送请求,服务器返回最新版本号

,3,当前版本号和服务器版本号进行比较,如果比服务器版本号小,就提示用户跟新最新版本

混淆

什么是混淆 ?

如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。

混淆的基本命令

keep 保留,例如keepattributes:表示保留属性 dont 不要,例如dontwarn:表示不要提示警告 ignore 忽略,例如ignorewarning:表示忽略警告

两个常用的混淆命令,注意一颗星表示只是保持该包下的类名,而子包下的类名还是会被混淆;两颗星表示把本包和所含子包下的类名都保持;

-keep class com.jiyun.demo**

-keep class com.jiyun.demo.*

-dontusemixedcaseclassnames表示混淆时不使用大小写混合类名。

-dontskipnonpubliclibraryclasses表示不跳过library中的非public的类。

-verbose表示打印混淆的详细信息。

-dontoptimize表示不进行优化,建议使用此选项,因为根据proguard-android-optimize.txt中的描述,优化可能会造成一些潜在风险,不能保证在所有版本的Dalvik上都正常运行。

-dontpreverify表示不进行预校验。这个预校验是作用在JAVA平台上的,Android平台上不需要这项功能,去掉之后还可以加快混淆速度。

-keepattributes *Annotation*表示对注解中的参数进行保留。

 

注意事项

保留我们使用的四大组件,自定义的Application等等这些类不被混淆,因为这些子类都有可能被外部调用。

一般以下情况都会不混淆:

1.使用了自定义控件那么要保证它们不参与混淆 

2.使用了枚举要保证枚举不被混淆 

3.对第三方库中的类不进行混淆 

4.运用了反射的类也不进行混淆 

5.使用了 Gson 之类的工具要使 JavaBean 类即实体类不被混淆 

6.在引用第三方库的时候,一般会标明库的混淆规则的,建议在使用的时候就把混淆规则添加上去,免得到最后才去找 

7.有用到 WebView 的 JS 调用也需要保证写的接口方法不混淆,原因和第一条一样 

8.Parcelable 的子类和 Creator 静态成员变量不混淆,否则会产生 Android.os.BadParcelableException 异常

多渠道打包

1、为什么要进行多渠道打包?

安卓应用商店(一个商店也叫做一个渠道,如360,baidu,xiaomi)众多,大大小小几百个,我们发布应用之后需要统计各个渠道的用户下载量,所以才有了多渠道打包。

2、怎么样统计各个渠道的下载量呢?

现在有比较成熟的第三方应用帮我们实现统计功能(比如友盟),统计的本质就是收集用户信息传输到后台,后台生成报表,帮助我们跟踪分析并完善app。通过系统的方法已经可以获取到,版本号,版本名称,系统版本,机型,地区等各种信息,唯独应用商店(渠道)的信息我们是没有办法从系统获取到的,所以我们就人为的在apk里面添加渠道信息(其实就用一个字段进行标识,如360,baidu),我们只要把这些信息打包到apk文件并将信息传输到后台,后台根据这个标识,可以统计各个渠道的下载量了,并没有多么的高大上。

应用加固

什么是应用加固?

有效防止应用被逆向分析,反编译,二次打包,防止嵌入恶意代码.

如何加固?

这里推荐到

1、腾讯云乐固

2、网易云易盾

3、360加固保

当然,你技术牛逼也可以自己给应用加壳

应用上架

将你多渠道打出来的包分别在对应的应用商店官网上传APP,审核通过后便上架成功

你可能感兴趣的:(版本迭代,混淆,多渠道打包,应用上架,应用加固)