Android Studio打包全攻略

1)手动打包

项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。

1. 创建签名文件
这里写图片描述 

2. 填写好签名参数

这里写图片描述

 

3. 生成APK
注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了

为什么要打包

我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project目录的build/outputs/apk目录下可以找到刚刚新鲜生成的app-debug.apk.直接把这个上传给市场不就行了吗。

这里写图片描述

 

NO,当然不行,想想手机安装App的时候怎么来区分各个APK的。
通过包名+签名 来确定一个应用的唯一性,那个 debug.apk 只是系统用来给我们调试用的,如果上传到市场,怎么来保证他的安全性。

 

OK,我们已经解决了第一步—怎么打包。上传上去后,市场反馈发现我们的App写得太棒了,这时候老大让赶快多上些平台,主流的平台、非主流的平台都要放上去。
那么问题来了,为了方便统计各个平台的安装情况,配合运营推广,需要统计各个平台的安装情况。 

分渠道打包

不错,我们需要用到分渠道打包,那么我们需要解决两个问题
1. 怎么区分各个平台的标识
2. 怎么每次版本更新都生成几十个包、几百个包
第一个简单,用过友盟打包的同学肯定不陌生这段代码

<meta-data android:name="UMENG_CHANNEL" android:value="Channel_ID"></meta-data>

value里面填的就是各个平台的值,比如填写uc、yyb(应用宝)、360、baidu替换掉Channel_ID,App安装好,可以读取这个值然后传给后台,从而实现区分各个平台的安装需求。
第二个问题:
在Eclipse时代,最开始我是手动打的,一次打30个包,每次最怕版本更新,基本一下午都在做机械运动,现在想起来手都在抽筋。
后来,学会了Ant自动打包,快倒是快,只是配置太坑爹了,超级麻烦。
现在有了Android Studio,妈妈再也不用担心我不能愉快的打包了。
随便新建一个项目,修改Module:app build.gradle

复制代码
apply plugin: 'com.android.application'
android {
    signingConfigs {
        config {
            keyAlias 'maker'
            keyPassword '1234make'
            storeFile file('/Users/Nevermore/AndroidStudioProjects/Blog/jks/makeapp.jks')
            storePassword 'make1234'
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "com.example.makeapp"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            minifyEnabled false
            debuggable true
        }
 
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            debuggable false
        }
    }
    //渠道配置
    productFlavors {
        uc {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
        }
        _360 {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
        }
        baidu {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
        }
        yyb {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yyb"]
        }
    }
}
 
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
}
复制代码

 

我们需要配置:

signingConfigs这是刚才我们新建的密匙信息 buildTypes 打包类型,包括了Debug和Release productFlavors打包渠道就在这儿配置咯 同时在AndroidManifest里面加上,渠道标识(注意红色背影的字符串一定要对得上)

 

现在还有个问题—代码写完了怎么生成渠道包呢

OK,在命令行输入 gradlew assembleRelease,表示生成所有Release包,生成的包在build\outputs\apk目录下,如果你要生成指定的包(uc|360|baidu),指定的版本(Release|Debug),右边的Gradle Project可以帮到你
这里写图片描述

 


4. 删除多余的 unaligned.apk
执行完-gradlew assembleRelease,发现一个问题,生成的不仅有我们需要的包,unaligned.apk类型的Apk也输出来了

这里写图片描述

unaligned.apk 是还没执行对齐命令的包,是中间形态,这个需要删除,没必要不知道为什么Gradle没有帮我们删了这没啥用的玩意儿,问题是我们也不想一个一个的手动删除。好吧,写了一个脚本命令,在输出文件夹的命令行执行如下:

find . -name "*-unaligned.apk" | xargs rm -rf

优化gradle代码
刚才写的代码

复制代码
productFlavors {
        uc {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
        }
        _360 {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
        }
        baidu {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
        }
        yyb {
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yyb"]
        }
}
复制代码


有些冗余,修改下减少我们的代码量

 

6. Gradle对新人来说语法有学习曲线,能不能再容易一点

咱们有工具啊,打开顶部Build
这里写图片描述

选择红色部分,里面的编辑框可以帮助我们更快的熟悉Gradle

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

来看看代码和编辑框的具体关系吧

这里写图片描述

7. 打包太多,需要清理一下

这里写图片描述


炉火纯青 快速打包 - 直接修改渠道号

想想,如果只是打渠道包的话,没有必要对整个项目进行编译,来生成渠道号。
如果能直接修改apk的渠道号,而不需要再重新签名能节省不少打包的时间。幸运的是我们找到了这种方法。直接解压apk,解压后的根目录会有一个META-INF目录。
如果在META-INF目录内添加空文件,可以不用重新签名应用。因此,通过为不同渠道的应用添加不同的空文件,可以唯一标识一个渠道。
采用这种方式,每打一个渠道包只需复制一个apk,在META-INF中添加一个使用渠道号命名的空文件即可。
这种打包方式速度非常快,900多个渠道不到一分钟就能打完。
没错,这就是美团的打包策略

使用方式:https://github.com/GavinCT/AndroidMultiChannelBuildTool
使用本工具,Android 程序员仅需将 ChannelUtil.java 放入到工程里使用,以后打包的事情就不用自己动手了。
安装个 Python 环境,运行一下 MultiChannelBuildTool.py,谁都可以打包了!
毕竟实践是检验真理的唯一标准:
拷贝一个,我们刚刚生成的app-uc-release.apk到项目目录

  

这里写图片描述

果然厉害,1S就出来这么多包。

反编译看看,包打得对不对
命令行 

  apktool d xxx.apk

这里写图片描述


打开目录,首先确认我们生成的XML里面的标识符
这里写图片描述


然后看到,美团极速打包方案也完成

这里写图片描述


但是,使用Gradle生成4个渠道,我们花了 26.5秒 人家 只花了目测 1s

转载于:https://www.cnblogs.com/zhang6332/p/10682018.html

无需Android Studio!UE5.3安卓打包环境配置全攻略(含SDK/NDK独立安装包) 本文详细介绍了如何在不安装庞大Android Studio的情况下,为UE5.3独立配置安卓打包环境。核心在于精准获取并配置Android SDK、NDK r25b和JDK 17三大组件,并正确设置引擎路径。文章提供了完整的部署步骤、常见问题(如Gradle超时、NDK版本不匹配)的解决方案以及打包优化技巧,帮助开发者搭建纯净、高效的UE5.3安卓打包流水线。 阅读详情

相关推荐

Android Studio打包全攻略---从入门到精通

初出茅庐 手动打包怎么手动打包项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。 1. 创建签名文件 2. 填写好签名参数 3. 生成APK 注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了为什么要打包我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project

我早就想,要这样载着你,翻山越岭 2万+

(2024.03.04)如何打包Android Studio项目?

最近帮助很多从未谋面的小伙伴调试了一下AS的项目,调试完成后需要他们查看是否与当初需求一致,此时就需要将已完成的项目打包,即导出APK安装包,发送到他们的手机上就可以下载安装使用了。在这里一是分享给大家打包方法,另外我也水一篇博文,前两年都没怎么写。以上是我打包的原因,但实际开发过程中为什么要打包呢?AndroidApp开发完成后,我们需要把自己的程序推广出去,供别人使用,此时就需要将自己的程序打包成APK文件,并接受审核,随后发布。

Cat 1万+

【翼型】基于Matlab的NACA翼型气动性能仿真与优化【附源码】

本文详细介绍了如何使用Matlab进行NACA翼型的气动性能仿真与优化。内容涵盖从生成NACA翼型坐标、利用面板法快速估算升阻力,到进阶的粘性流模拟与优化设计入门。通过清晰的代码示例和分步指南,帮助读者掌握基于Matlab的翼型分析与优化流程,为飞行器或叶片设计提供实用工具和方法。

weixin_29032489的博客 377

AndroidAndroid Studio打包APK、精简APK大小与规范处理详解

Android Studio中运行程序默认都是debug版本,而想要在别人手机上安装应用,就需要把App打包成APK文件(release版本)。

qq_52924376的博客 2万+

Android Studio打包APK保姆级教程(小白也能轻松上手)

本文详细介绍了使用Android Studio将项目打包为APK文件的完整流程。首先说明APK打包的必要性:用于手机测试、应用商店发布和分享。准备工作包括确保Android Studio配置完成且项目能正常运行。具体步骤分为:1)生成签名密钥,填写密钥信息;2)选择release版本配置构建变体;3)完成打包并找到APK文件。最后提供两种安装测试方法:USB连接直接安装或手动复制APK文件安装。全文配有详细操作截图,帮助开发者快速掌握APK打包技能。

商城app+新闻app+备忘录记事本app视频教程在某站【浩宇软件开发】 3702

Android】使用Android Studio打包APK文件

文章目录1. 新建项目2. 打包生成APK3. 安装APK 1. 新建项目 打包APK之前,首先需要新建项目,有基础的可以跳过。 无基础的可以参考:使用Android Studio运行Hello World项目 2. 打包生成APK 1.找到Build -> Generate Signed Bundle or APK -> 勾选APK 2.首次需要创建证书,后续可以使用已创建好的证书 3.填写证书信息 选择密钥库存放路径,并填写密码 填写密钥名称、密码和有效期 填写证书信息(选填,不用全

将冲破艾迪i的博客 2万+

android studio 打包按钮_Android Studio打包全攻略

1)手动打包项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。1. 创建签名文件2. 填写好签名参数3. 生成APK注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了为什么要打包我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project目录的build/outputs/apk目录...

weixin_39631344的博客 394

android studio翻书,Android Studio打包全攻略

1)手动打包项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。1. 创建签名文件 2. 填写好签名参数 3. 生成APK注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了为什么要打包我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project目录的build/outputs/apk...

weixin_30304423的博客 267

【转】【AndroidAndroid Studio打包全攻略

项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。1. 创建签名文件2. 填写好签名参数3. 生成APK注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了 为什么要打包 我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project目录的build/outputs/apk目录下可以...

kakarrot2009的专栏 58

android打包入门,Android Studio打包全攻略---从入门到精通

本文原创地址:http://blog.csdn.net/zivensonice/article/details/51672846 初出茅庐 手动打包 怎么手动打包 项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。 1. 创建签名文件 2. 填写好签名参数 3. 生成APK本文原创地址:http://blog.csdn.net/zivensoni...

weixin_36474001的博客 535
上一篇: UIWebView代码注入时机与姿势
下一篇: Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
aimian1615
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值