导航:首页 > 操作系统 > android多渠道打包工具

android多渠道打包工具

发布时间:2022-07-01 09:07:30

㈠ 多渠道打包的apk哪个文件夹里面

相信每位玩机的人对APK文件都不陌生。你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。。。你可曾知道这些每天都伴随着你的APK文件是什么吗?怎样对它们作些修改呢?比如说:对英文版进行汉化、修改功能、修改文字描述、去掉广告等等。本文介绍APK的基本知识、结构、APK文件的解包、打包及签名,以及对APK文件的常规修改。

1.APK文件简介
APK是androidPackage的缩写,即即Androidapplicationpackage文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android手机中执行即可安装。APK文件其实就是zip格式,但其扩展名被改为apk,用解压软件可以直接打开。通过WinRAR或UnZip解压后,你会看到有几个文件和文件夹。一个典型的APK文件通常有下列内容组成:AndroidManifest.xml程序全局配置文件classes.dexDalvik字节码
resources.arsc
编译后的二进制资源文件
META-INF\该目录下存放的是签名信息res\
该目录存放资源文件
assets\该目录可以存放一些配置文件
下面对这些文件和目录做些基本的注释和介绍。•AndroidManifest.xml
该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。
•classes.dex文件
classes.dex是java源码编译后生成的java字节码文件。dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。•resources.arsc
编译后的二进制资源文件。•META-INF目录
META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染
和恶意修改增加了难度,有助于保护系统的安全。•res目录
res目录存放资源文件。包括图片,字符串等等。解包后,几乎所有可能的修改和编辑工作基本都在这里。•assets目录
assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。
2.APK文件的解包和打包
APK文件是用专业软件eclipse编译生成的文件包。在网上可以找到许多软件来对APK的内容进行反编译,例如:可以通过AXMLPrinter2工具和命令:java-jarAXMLPrinter2.jarAndroidManifest.xml解开在apk中的AndroidManifest.xml。最近,业界有一个功能强大的解包打包工具包apktool,可以在Windows下用来方便快速地对APK文件进行解包和打包,给修改和编辑工作带来许多方便。下面来介绍它的使用。
1)APKtool软件包
APKtool软件包有2个程序组成:apktool.jar和aapt.exe另外提供一个批处理文件:apktool.bat,其内容为:java-jar"%~dp0\apktool.jar"%1%2%3%4%5%6%7%8%9
运行apktools.jar需要java环境(1.6.0版本以上)。apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。2)APK文件的解包
下面以解开Contacts.apk为例。首先把Contacts.apk复制到当前工作目录下(例:Test)。在DOS下打入命令apktooldContacts.apkABC
这里“d”表示要解码。Contacts.apk是要解包的APK文件。ABC是子目录名。所有解包的文件都会放在这个子目录内。3)APK文件的打包在DOS下打入命令
apktoolbABCNew-Contacts.apk这里“b”表示要打包
ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。
New-Contacts.apk是打包后产生的新的APK文件。4)Framework框架文件
在解开APK文件时,apktool需要框架文件(framework-res.apk)来解码和打包。Apktool已经包含了标准的框架,所以在大多数APK文件的解包时,不需要另外提供框架文件。但是,某些制造商使用了他们自己的框架文件,为了解包,就不得不从手机中把框架文件(framework-res.apk)提取出来,然后安装到计算机。安装命令是:
apktoolifframework-res.apk
安装后就会得到:~\apktool\framework\1.apk5)解包、解包和签名批处理
在实际使用时,可能对多个APK文件进行处理。方便的做法是写成批处理文件。打包和签名可以一次完成。
解包批处理命令:

for%%iin(*.apk)dojava-jarapktool.jard%%i_%%i&&move_%%iModifying_Files&©%%iBackuped_Raw_Files&&@echoFile[%%i]unpackingprocessiscompleted!

打包和签名批处理命令:
for/d%%iin(*)docd..&&java-jarapktool.jarbModifying_Files\%%i&&
java
-jar
signapk.jar
testkey.x509.pem
testkey.pk8
Modifying_Files\%%i\dist\*.apk%%i&&ren%%iNew%%i&&moveNew%%iModified_Signed_Files&&@echo%%iCompleterepackingandSigning!&&cdModifying_Files

㈡ android studio多渠道打包什么方式比较好

第一就是配置:在项目的build.gradle里面配置 先上图,再上代码。

第二步,就是打包。(网上有介绍用命令打包,可是我这人太懒,发现了个小窍门,直接在android studio 里面进行。)上图(另外,后面我还是补上了gradle命令打包的介绍。大家可以看看http://my.oschina.net/aibenben/blog/370985)

如果没有keystore,先创建一个,默认为.jks文件,一样的。

大家这里创建完后,可以再回头看看前面配置的build.gradle里面signingConfigs的内容。是不是就懂了(其实我这里有一个疑问,感觉如果用我这种方式去打包,签名文件都没有去读取配置文件里面的了)

㈢ android 多渠道打包的话极光还可以使用吗

多渠道打包和极光不冲突吧
多渠道打包是相当于给apk做了个标识
用户从不同的渠道下载会有不同的标识
极光推送依赖的只是手机设备唯一标识和你自己设置的别名等

㈣ android studio为什么要做多渠道打包

文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值:
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>11

上面的value值Channel_ID就是渠道标识。我们的期望的就是在编译时候这个值能够自动变化以满足区分多渠道的需求。
(一)在AndroidManifest.xml里设置动态渠道变量
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />123123

(二)在build.gradle设置proctFlavors
这里假定我们需要打包的渠道为酷安市场、360、小米、网络、豌豆荚
android {
proctFlavors {
kuan {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "kuan"]
}
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
qh360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"]

㈤ Android Studio有哪些非常好用的插件

  1. android-postfix-plugin可根据后缀快速完成代码,这个属于拓展吧,系统已经有这些功能,如sout、notnull等,这个插件在原有的基础上增添了一些新的功

  2. AndroidAccessors快速生成get和set方法的插件,其实系统的也有类似功能,这个更快。

  3. Lifecycle-Sorter

  4. 可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序, 快捷键Ctrl + alt + K

  5. JsonOnlineViewer

  6. 可实现直接在android studio中调试接口数据,可以选择请求类型,自定义请求头及请求体,json数据格式化后展示

  7. CodeGlance

  8. 可用于快速定位代码,类似于Sublime编辑器右侧定位视图

  9. idea-android-studio-plugin

  10. IntelliJ IDEA / Android Studio plugin with some tools and usability improvements

  11. folding-plugin

  12. 可以给资源文件分组,并且不移动文件,也不会创建文件夹:Android File Grouping Plugin

  13. Android Drawable Importer

  14. 为了适应所有Android屏幕的大小和密度,每个Android项目都会包含drawable文件夹。任何具备Android开发经验的开发人员都知道,为了支持所有的屏幕尺寸,你必须给每个屏幕类型导入不同的画板。Android Drawable Importer插件能让这项工作变得更容易。它可以减少导入缩放图像到Android项目所需的工作量。Android Drawable Importer添加了一个在不同分辨率导入画板或缩放指定图像到定义分辨率的选项。这个插件加速了开发人员的画板工作。

  15. Android ButterKnife Zelezny

  16. 用于在活动、片段和适配器中,从所选的XML布局文件生成ButterKnife注入。该插件提供了生成XML对象注入的最快方式。

  17. Android Holo Colors Generator

  18. 开发Android应用程序需要伟大的设计和布局。Android Holo Colors Generator则是定制符合喜好的Android应用程序的最简单方法。Android Holo Colors Generator是一个允许你为你的应用程序随心所欲地创建Android布局组件的插件。此插件会生成所有必要的可在项目中使用的相关的XML画板和样式资源。

  19. Android Parcelable code generator

  20. 生成实现了Parcelable接口的代码的插件。在你的类中,按下alt + insert键弹出插入代码的上下文菜单,你会看到在下面有一个Parcelable,如下所示。选择它之后,就会在你的类当中插入实现了Parcelable接口的代码。从此不用再手动写Parcelable代码

  21. AndroidCodeGenerator

  22. 可以生成ViewHolder和findView方法的代码。尤其是在Adapter实现类的getView当中很有用。

  23. Android Layout ID Converter

  24. 生成findView代码的使用方法。

  25. SelectorChapek for Android

  26. 生成Selector的插件。你需要在drawable文件夹中右键,在弹出的菜单中选择Generate Android Selectors,如下所示,它就会根据你的几个drawable文件夹里的资源的命名,帮你生成Selector代码。当然,你的资源文件需要根据约定的后缀来命名。比如按下状态为_pressed,正常状态为_normal,不可用状态为_disable,等等

  27. genymotion-gradle-plugin

  28. 不同于图形化的genymotion插件,这个允许你通过脚本来配置,创建device。

  29. sdk-manager-plugin

  30. SDK管理插件,自动检测更新并下载。

  31. otto-intellij-pluginotto事件导航工具。

  32. dagger-intellij-plugin

  33. dagger可视化辅助工具。

  34. eventbus-intellij-plugin

  35. eventbus导航插件

  36. eventbus3-intellij-plugin

  37. eventbus导航插件

  38. strings-xml-tools

  39. 管理Android工程中字符串国际化的插件

  40. gradle-packer-plugin

  41. Android多渠道打包工具。

  42. gradle-retrolambda

  43. 在java 6 7中使用 lambda表达式的插件。

  44. lint-cleaner-plugin

  45. 移除Android中无用资源。

  46. dexcount-gradle-plugin方法数计算,对于较大应用避免方法爆棚很有用。

  47. android-unit-test

  48. 添加Android单元测试。

  49. robolectric-gradle-plugin

  50. Robolectric测试辅助工具。

  51. maven gradle 依赖支持自动补全。idea-markdownmarkdown插件

详细教程

㈥ android 什么是多渠道打包

写Android应用的人类每次发布App都需要面对数十个市场,而为了能够采集到市场的表现数据,就必须为每一个市场生成相应的apk包,也就是俗称的渠道包。

㈦ android python多渠道打包,必须使用代码方式吗

Python在这里的作用是用来解压apk,添加空渠道文件(如果在META-INF目录内添加空文件,可以不用重新签名应用),重新打包。
所以在写程序的时候,必须通过代码方式动态获取渠道信息(从刚才添加的空渠道文件获取),并传给统计平台或者是自己的服务器。

㈧ 求教Android Studio 多渠道打包问题,分数好说

最后去google了一番,发现有些方法,是在gradle文件里切换各种不同的AndroidManifest.xml文件,感觉这样也太麻烦些了。。。后面搜索了些,发些大家写得都差不多,发现一个在gradle利用manifestPlaceholders这个属性来替换渠道值的方法,但我按照这个方法,没有成功,我就去扒官方的文档才彻底搞定。下面就讲讲怎么实现的吧。
一般用渠道的统计无非是用友盟或者其它之类的,今天就以友盟的为例吧。
渠道信息一般在AndroidManifest.xml中修改以下值:

Java

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

<meta-dataandroid:name="UMENG_CHANNEL"android:value="wandoujia"/>

首先你必须在AndroidManifest.xml中的meta-data修改以下的样子:

Java

<meta-dataandroid:name="UMENG_CHANNEL"android:value="${UMENG_CHANNEL_VALUE}" />

<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"/>

其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值。
build.gradle文件就利用proctFlavors这样写:

Java

proctFlavors {wandoujia {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]} {manifestPlaceholders = [UMENG_CHANNEL_VALUE: ""]}c360 {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]}uc {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]}}

proctFlavors{
wandoujia{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"wandoujia"]
}
{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:""]
}
c360{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"c360"]
}
uc{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"uc"]
}
}

其中[UMENG_CHANNEL_VALUE: "wandoujia"]就是对应${UMENG_CHANNEL_VALUE}的值。
这样生成apk时,选择相应的Flavors来生成指定渠道的包就可以了,而且生成的apk会自动帮你加上相应渠道的后缀,非常方便和直观。
多渠道打包从此就非常快捷了,今天就写到这里,以后Android studio有相应的tips还是会分享给大家。

㈨ android studio 怎么打包各平台apk

(1)Android Studio菜单Build->Generate Signed APK

(2)弹出窗口

(3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密钥库跳过)
点击“Create new...”按钮创建密钥库

Key store path:密钥库文件的地址
Password/Confirm:密钥库的密码
Key:
Alias:密钥名称
Password/Confirm:密钥密码
Validity(years):密钥有效时间
First and Last Name:密钥颁发者姓名
Organizational Unit:密钥颁发组织

㈩ android多渠道打包

渠道打包就是分不同的市场打包,比如安卓市场,网络市场,Google市场,360市场等等,太多了。分渠道打包目的是为了针对不同市场做出不同的一些统计,数据分析,收集用户信息。具体你可以看看umeng提供一些开源的免费类库的统计服务。

阅读全文

与android多渠道打包工具相关的资料

热点内容
电影院默认场区什么意思 浏览:657
韩国 禁忌 姐弟爱唯美电影 浏览:82
极限压缩方法 浏览:263
小苮儿清读210部有声下载网盘 浏览:382
qt程序编译成功后 浏览:616
富二代装穷的电影有哪些 浏览:394
吓一跳命令 浏览:189
猫宝宝资源 浏览:954
python3d库 浏览:735
小苮儿网盘提取码 浏览:238
怎么给磁盘加密c盘 浏览:381
内核驱动编译v1 浏览:575
韩国电影伦理中文 浏览:67
大乐透复式算法计算器 浏览:845
啄木鸟40部 浏览:502
我的世界服务器版本下载地址 浏览:925
怎么制作一个游戏的服务器 浏览:800
python中xticks用法 浏览:905
西瓜视频解压软心砖 浏览:137
程序员被孤立怎么办 浏览:807