Apk打包与多渠道打包

前言:

应用再上线之前,肯定需要打包Apk,而打包Apk必要的文件就是xxx.keystore文件,一般用Android Studio模拟程序运行时候,就是使用的默认的debug.keystore。

打包方式一:使用AS来完成

(1)点击Android Studio 导航栏上Build - Generate Signed APK(使生成 已签名的 APK)
可能首先展示的是输入密码的输入框,就是你AS的密码,主要作用是,解锁密码数据库
,后续在使用可以不用输入密码了,但一般是如下界面:
这里写图片描述

   第一栏:输入一个keystore文件的路径。如果存在可以点击Choose existing...按钮选择一个已经存在的,如果要是没有的话,可以选择Create New...建立一个新的keystore文件
   第二栏:keystore 密码,一般你选择了你的keystore文件,其自己读取出来
   第三栏:keysotre 别名,
   第四栏:key password:别名对应的密码

建立一个自己的(Create New …)key store 文件,截图如下:
这里写图片描述
第一栏:key store path :key store 文件建立之后,放在哪里。
第二栏:password :密码,confirm:再输一遍密码
第三栏:Alias: 别名,
第四栏:password:密码,confirm:再输一遍密码
第五栏:Validity :证书有效年限,自己定义一个
Certificate 版块:依次是姓名、组织单位(可以为个人或者组织)、组织、国家(省会)、
城市、国家代码(一般为86)

这样有了自己的keystore文件了。
(2)回到第一张图界面,所有信息填完之后,点击Next,之后点击finisn 就可以了

使用Gradle方式打包

(1)首先在build中添加如下:

signingConfigs{
        config{
            storeFile file('D:/xljnew.jks')
            storePassword '000000'
            keyAlias  'key0'
            keyPassword '000000'
        }

    }

其实也是和AS一样的原理,也是需要keystore 文件,一次是:文件位置、密码、
别名、别名密码、
需要注意的是,这句话一定要在buildTypes{}之前,要不然回报
Could not get unknown property ‘config’ for SigningConfig container.的错误
(2)在buildTypes 中添加:

 buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config //主要是添加这个
        }
    }

(3)生成需要Apk文件:
如图所示:
这里写图片描述

   点击右侧的Gradle按钮,弹出如图所示的框,看build里面可以看见许多东西,
   其中,assembleDebug:生成测试版本Apk文件、assembleRelease 生成正式版Apk文件
   文件自动生成到左侧app/build/outputs/apk中

(4)技巧,如何放置keystore文件泄露
可以在gradle.properties文件中添加:
KEY_PATH = D:/xlj.jks
KEY_PASS = 000000
ALISA_NAME= key0
ALIAS_PASS=0000
这样在使用时候:

  signingConfigs{
        config{
            storeFile file(KEY_PATH)
            storePassword KEY_PASS
            keyAlias  ALIAS_NAME
            keyPassword ALIAS_PASS
        }
    }
这样在合代码时候,将gradle.properties文件放在本地就好了

多渠道打包

由于,不同的平台会有自己的需求等一系列的原因,需要用到多渠道打包。
(1)先修改build文件如下:

productFlavors{
qihoo{
applicationId “com.example.administrator.qihoo”
}
baidu{
applicationId “com.example.administrator.baidu”
}
}
如上述添加了360和百度的包,其实就是将aplicationId属性进行了复写。那么生成的各渠道的包名也将不相同。
(2)如何定义差异性
这个不是必须的,但是也要知道,正如qq国际版、qq百度版之类的效果
我们在app/src(与main的平级目录)新建一个qihoo和baidu的文件夹,然后在下面分别建立java和res 这两个目录,Java目录是存放代码,res是存放资源,但是并不是将内容拷贝过来,而是改啥添加什么,比如,在baidu 文件下修改app_name,那就是建立src/values/string.xml文件,在其中:

< string name = “app_name”>测试版App< /string>
那么就会在百度版本的APK中用新定义的名字覆盖原来应用的。
(3)生成apk,按照前面说的一步步操作就可以了。如图:
这里写图片描述

这里写图片描述

如上图所示:就是生成的两个Apk。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值