前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android自动化构建之Ant多渠道打包实践(下)

Android自动化构建之Ant多渠道打包实践(下)

作者头像
巫山老妖
发布2018-07-20 11:25:24
3860
发布2018-07-20 11:25:24
举报
文章被收录于专栏:小巫技术博客小巫技术博客

前言

上一篇(Android自动化构建之Ant多渠道打包实践(上))已经介绍了Android的apk是如何构建的,本篇博客继续Ant打包的实践过程。

集成友盟统计SDK

这里以友盟统计为例,对各个渠道进行统计,我们需要先集成它的SDK

配置权限

代码语言:javascript
复制
    <!-- 权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>

渠道配置

代码语言:javascript
复制
 <!-- 友盟统计配置 -->
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="56f0b1ef67e58eded700015b" >
        </meta-data>
        <meta-data android:name="UMENG_CHANNEL" android:value="Umeng" />

使用Ant打包的时候替换的渠道号就是<meta-data android:name="UMENG_CHANNEL" android:value="Umeng" /> 将Umeng替换为具体的渠道,比如将Umeng替换为xiaomi。

定义build.properties文件

这个文件定义了Ant脚本要用到的一些参数值,我们的渠道也是定义在这里,具体看代码:

代码语言:javascript
复制
#project name and version
    project.name=AntBuild
    project.version=4.1.4

#android platform version
    android-platform=android-19

#keysore file  
    ketstore.file=release.keystore
    key.alias=release.keystore
    key.alias.password=123456
    key.store.password=123456

#publish channel
    channelname=Umeng
    channelkey=360,QQ,xiaomi,liangxiang
    key=360,QQ,xiaomi,liangxiang

#library project
    library-dir=../Library
    library-dir2=../Library2
# generate R.java for libraries. Separate libraries with ':'.
    extra-library-packages=

#filnal out dir
    out.dir=publish

完整的Ant脚本

完整的脚本代码,请查看原文。

上面就是完整的Ant脚本,实现了自动化构建和多渠道的打包,笔者在实践的过程踩过不少坑才最终把apk包成功打出。

这里总结下可能遇到的坑:

  • 生成R.java文件,一定要注意先后顺序,主项目之后才到关联项目
  • 编译生成class文件,可能会遇到找不到类,一定要按照添加库的顺序来编译class文件
  • 替换渠道号的时候,Ant中pattern里的内容要与mainfest文件的内容一致,包括顺序,空格),笔者试过格式化后代码之后就不能写入成功

build.bat脚本

代码语言:javascript
复制
@echo off
call ant -buildfile "build.xml" deploy
echo done
pause
exit

测试结果

我们可以在项目中的publish目录下生成不同渠道的apk文件:

安装apk到设备,启动之后在友盟后台集成测试,看app发布的渠道:

Demo例子欢迎大家star

https://github.com/devilWwj/Android-Tech/tree/master/AntBuildTest

总结

实现Ant多渠道打包整个过程还是比较繁琐的,主要在Ant脚本上,比较容易出错,需要对命令比较了解,但确实能够缩短我们打渠道包的时间,基于本次实践是基于Eclipse,目前Android Studio使用gradle来实现多渠道打包,以后会把gradle进行多渠道打包的实现分享给大家,大家可以对比下这两种打包方式的区别,主要目的是更加深入的了解apk的构建过程。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小巫技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 集成友盟统计SDK
  • 定义build.properties文件
  • 完整的Ant脚本
  • build.bat脚本
  • 测试结果
  • Demo例子欢迎大家star
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档