国内市场上有许许多多的应用市场,常见的有:百度、360、腾讯应用宝、豌豆荚等。

其他手机厂家如小米、华为、魅族、三星等都有自己的应用市场,总共有上百家!

问题

发版前,Android工程师打包了上百个渠道版本,如何检验渠道号与apk名称是否一致?

希望自动去获取apk的友盟渠道号,并自动进行校验。

怎么做

Android Apk的渠道号一般存放在AndroidManifest.xml文件中。

批量反编译Android Apk

遍历反编译后的apk文件夹,从AndroidManifest.xml取出渠道号

比较渠道号与apk名称

将测试结果写入csv文件

a. 反编译Android Apk

反编译Apk,得到源文件和资源文件.

渠道号存放在 AndroidManifest.xml 文件中。

java -jar apktool.jar d -f package.apk

输出结果如下:

I: Using Apktool 2.1.0 on test.apk

I: Loading resource table...

I: Decoding AndroidManifest.xml with resources...

I: Loading resource table from file: C:\Users\Administrator\apktool\framework\1.apk

I: Regular manifest package...

I: Decoding file-resources...

I: Decoding values */* XMLs...

I: Baksmaling classes.dex...

I: Copying assets and libs...

I: Copying unknown files...

I: Copying original files...

备注:

Android apk整体反编译所需时间较长,如只获取AndroidManifest.xml文件,那么只需反编译

资源文件即可,不对源代码进行反编译,使用参数 -s ,只需花费很少时间.

b. 获取渠道号

遍历AndroidManifest.xml文件,取出渠道号所在行.

python实现如下:

with open(manifest,'r+') as m:

umeng_line = [ line.strip() for line in m.readlines() if 'UMENG_CHANNEL' in line ]

#取出渠道号所在行后,进行分割、去除.

或者直接输入编译后的apk文件夹,具体如下:

def get_apk_umeng_value(reverse_folder):

umeng_channel = []

for rfn in reverse_folder:

manifest = os.path.join(version_catalogue,rfn,'AndroidManifest.xml')

with open(manifest,'r+') as m:

umeng_line = [ line.strip() for line in m.readlines() if 'UMENG_CHANNEL' in line ]

for ul in umeng_line:

ucv = ul.split('=')[2]

#使用strip过滤"/>//--等特殊字符

umeng_channel.append(ucv.strip('"/>// --'))

return umeng_channel

完整代码地址:

android渠道版本号,2. 验证Android渠道版本渠道号 - 测试手册相关推荐

  1. android sutdio版本号,电脑中Android studio版本号如何查看_电脑中查看Android studio版本号的步骤-系统城...

    Android studio是谷歌推出的一个Android集成开发工具,在使用的时候,经常会有新版本不断产生所以就需要查看自己的Android studio版本号来确保是否需要进行更新,很多用户不知道 ...

  2. android获取版本号报错,Android开发:获取安卓App版本号的方法步骤

    在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能.Android的App版本号相关内容比iOS的App版本号内容要多,而 ...

  3. android获取操作系统版本号,Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类...

    1.获取手机制造厂商 2.获取手机型号 3.获取手机系统当前使用的语言 4.获取Android系统版本号 5.获取手机IMEI串号 6.获取手机中的语言列表 SystemUtil类 1. /** 2. ...

  4. Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类...

    最近在开发中,需要用到一些系统信息,这里我把这些方法写成一个工具类方便以后复用,该工具类有以下6个功能: 1.获取手机制造厂商 2.获取手机型号 3.获取手机系统当前使用的语言 4.获取Android ...

  5. Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类

    最近在开发中,需要用到一些系统信息,这里我把这些方法写成一个工具类方便以后复用,该工具类有以下6个功能: 1.获取手机制造厂商 2.获取手机型号 3.获取手机系统当前使用的语言 4.获取Android ...

  6. android 打包版本号,Android打包版本号设置

    之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本. 晚上学习了如何配置打包名称,很简单,修改build.gr ...

  7. Android开发时包名、签名、渠道和版本号的易坑点(转)

    本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名 ...

  8. Android渠道包自动化验证

    随着产品发布越来越快,渠道包越来越多,渠道包自动化验证重要性逐渐凸显出来,需要将大把的人力从中解放出来,且避免人工失误造成的验证不完全: 最近客户端产品尝试使用渠道包自动化测试的方法,这里说说我们目前 ...

  9. 百度 android 市场,百度下线91和安卓市场渠道,第三方应用商店继续走向衰落

    编者按:本文来自界面新闻,作者 伍洋宇,36氪经授权发布. 2月17日晚,"百度手机助手开发者"公众号发布了一篇<关于91和安卓市场渠道的下线通知>,宣布将不再支持91 ...

  10. android多媒体框架学习 详解 最新版本

    一:多媒体框架概述 jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了!也体现 ...

最新文章

  1. Spring 核心特性
  2. javascript --- 使用run函数,让100条ajax依次执行
  3. 数据特征分析-正太分布
  4. struts国际化java_java框架篇---Struts2 本地化/国际化(i18n)
  5. 华为首家欧洲生产厂选择落户法国小镇 将为4G/5G基站生产零部件
  6. [导入]基于Spring+zk的WebDisk系统研究.pdf(462.84 KB)
  7. hdu 5596 GTW likes gt
  8. vue axios封装以及登录token过期跳转问题
  9. 01背包问题c语言,遗传算法的0-1背包问题(c语言)
  10. 社会工程学主要学习内容及书籍推荐
  11. 解决移动端点击响应速度慢的问题tap
  12. 君正X1000芯片性能和处理器介绍
  13. html css的参考文献,网页制作论文参考文献大全 网页制作参考文献有哪些
  14. matlab视频文件处理,Matlab处理视频文件1
  15. ed是什么梗_美国大学EA,ED什么意思?
  16. x5650服务器装系统,笔记本处理器天梯图,小猪教您最新笔记本显卡天梯图
  17. Java:使用Java调用打印机进行打印(JPG、PDF和Word三种文件格式)
  18. 如何查看电脑的操作系统以及更改计算机名称
  19. 预训练模型(PTMs)发展史
  20. 线程池的创建及参数设置详解

热门文章

  1. 8/30 Hourglass网络原理
  2. 为什么网站要使用手机验证码?
  3. (转)高盛报告:人工智能、机器学习和数据将推动未来生产力的发展
  4. 家用路由器设置虚拟服务器,家用路由器设置虚拟服务器
  5. 包包各部位名称图解_手袋包细节详解
  6. Android免费离线文字转语言+讯飞语记
  7. 冲刺中高考,AI辅助学习靠谱吗?
  8. android流光字体实现,CSS实现字体流光/高光滑动
  9. 【论文翻译】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  10. struggle for English college test band 6