如何修改android包名修改工程的包名

今天看啥 热点:
网上好多自动化打包,都是争对同一个工程打不通渠道的包,而目前我要做的就像讯飞语音那样,需要根据你注册的信息去生成更改了包名的example工程,只是我们提供的只是apk包不需要源代码,公司大牛通过写shell脚本,去轮询工程从而替换所有的packagename。现本人分享一段google后的样本,只通过修改sdk下相应build.xml 文件的配置,从而达到同一工程打不通packagename的apk.只需在-package-resources命令中添加manifestpackage="${package.manifest.name}",这样包名变更改为package.manifest.name的实际值了。如下```java&target name="-package-resources" depends="-crunch"&&!-- only package resources if *not* a library project --&&do-only-if-not-library elseText="Library project: do not package resources..." &&aapt executable="${aapt}"command="package"versioncode="${version.code}"versionname="${version.name}"debug="${build.is.packaging.debug}"manifest="${out.manifest.abs.file}"assets="${asset.absolute.dir}"androidjar="${project.target.android.jar}"apkfolder="${out.absolute.dir}"nocrunch="${build.packaging.nocrunch}"resourcefilename="${resource.package.file.name}"resourcefilter="${aapt.resource.filter}"libraryResFolderPathRefid="project.library.res.folder.path"libraryPackagesRefid="project.library.packages"libraryRFileRefid="project.library.bin.r.file.path"previousBuildType="${build.last.target}"buildType="${build.target}"ignoreAssets="${aapt.ignore.assets}"
manifestpackage="${package.manifest.name}"&&res path="${out.res.absolute.dir}" /&&res path="${resource.absolute.dir}" /&&!-- &nocompress /& forces no compression on any files in assets or res/raw --&&!-- &nocompress extension="xml" /& forces no compression on specific file extensions in assets and res/raw --&&/aapt&&/do-only-if-not-library&&/target&```可以通过cmd执行android update .命令,在工程下生成build.xml文件,便可看到具体引用的sdk下打包用的build.xml文件,通过复制文件进行修改,并修改相应的引用即可。这些就不在赘述了。传送门/109830/archive/15436.html
暂无相关文章
相关搜索:
相关阅读:
相关频道:
其他教程最近更新Android Studio,咱们开发安卓的利器,自推出就受到移动开发者的追捧,但一路走来,大家谈到他,充满了兴奋之情之余,也略显羞涩。随版本自推出以来,不断完善BUG,但咱们还是深深地踩了进去,说多了,淡淡的忧伤又开始浮现。。切入主题,((今儿是来给大家分享一份入门必备的大招,如何利用Android studio修改包名!))
& &首先咱们先来介绍&Android Studio的目录结构,以便各路好友,在修改的过程中有更好的脑图引导,同时也作为Android Studio目录入门介绍,有点多哈。
上图显示了咱们打开android studio后最基本的一个目录结构,也是容易被大家忽视的。这里先讲一讲层级关系,按照俺综合各大搜索媒体,书籍,以及自个的理解,Android Studio的层级关系(俗称目录结构),是这样一种联系,Project----&(N个)module,俺不会做树状图,我就讲的详细一点,大家认真听,其实概念还是比较简单,但由于换了一个表现形式,很多同学,容易混淆,eclipse的Project相当于上图的module,说法不同,再简便点,Project相当于一个大的文件,和大家做网站的根目录一个意思,下面有多个细分文件,叫做module,也就是咱们的app.
接下来,咱们开始讲切换包名的步骤,第一步点击packages下的包名,见下图
限于篇幅,只截了一部分,找到包名,一般就是COM.文件名字.最终文件名,如COM.android_studio.First,接着上面的图,点击refactor中的rename,改你所想要的新名字,看下图。
输入新名字,点击上图中refactor,即可。
接下来咱们到了第二步:改build.gradle(module:APP名字)文件中的&applicationId&
第三步:clean和rebuild project
大家一定有疑问为何要clean和rebuild,这是因为,许多APP是已经集成好,多个文件引用包名(com.example.administrator.myapplication,这是未改之前的名字),要将其全部,注意全部这两个字改为com.example.administrator.myapplication_studio,就需要clean和rebuild。
第四步:关闭android studio重启,哈哈,搞定。
最后一步:可有也可无
&如果大家经过上述的步骤还有错,按照目前我的做法,亲测N次,都无问题,无论是新装APP还是做好的,有时,IDE版本不同,可能效果不同,按照原理上,经过以上步骤,各个文件的包名会自动替换,以防万一,再送上两招,第一:改mainifest里面的package值,改为你所改的名字,第二,改变R文件(在package包里),看第一附图,嘿嘿,在这里你知道这个文件的用处了吧,R文件隐藏在这了。
俺在做的过程中的一点体会和方法,在这里全部奉献给大家,希望大家能从中找到自己所需要的,以后俺也还会继续为大家奉上更多开发知识,同时也很开心,能利用这个机会向我所喜爱的博客园,分享自己的一份收获,希望博客园越办越好,O(&_&)O哈哈~,扯远了,中山学院无线班屌丝飘过!!
阅读(...) 评论()Error 404 (Not Found)!!1
404. That’s an error.
The requested URL /324920/ was not found on this server.
That’s all we know.主题信息(必填)
主题描述(最多限制在50个字符)
申请人信息(必填)
申请信息已提交审核,请注意查收邮件,我们会尽快给您反馈。
如有疑问,请联系
傻丫头和高科技产物小心翼翼的初恋
如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。个人网站:。个人QQ群:、
个人大数据技术博客:
CSDN &《程序员》编辑/记者,投稿&纠错等事宜请致邮Android完全改包名工具Android-Rename - 推酷
Android完全改包名工具Android-Rename
受限于 Eclipse 和 Gradle 提供的改包名工具,依然会碰到很多错误,或者 App 共存问题。这些导致修改包名的app不能和之前的app共存的几个主要原因:
AndroidManifest.xml 中定义的 provider 具有相同的 android:authorities 数据,或者没有这个数据(没有这个数据等同于与 android:name 相等)
AndroidManifest.xml 中定义的 service、receiver、provider 具有与原来包相同的 android:process 数据。
AndroidManifest.xml 中定义了很多 action 标签,他们 android:name 与原来一样,导致了接收 Action 有冲突。
这个工具不仅修改了以上全部,还会搜索 Java 代码是否使用这些数据,然后修改掉。(这三项功能不是默认打开,是作为可选项使用的)
当然上述是一些问题,工具也会把正常改包名的工作也修改了,包括下面:
修改主项目中 AndroidManifest.xml 的 package
补全所有 AndroidManifest.xml 中按照 .XXXActivity 短定 android:name 字段
修改所有 Resources 中 xml 文件中的自定义 xmlns
修改所有 Java 代码中的 import 自动生成的 .R 引用和 .BuildConfig 引用
下面介绍安装和如何使用 Android-Rename
Android-Rename 是一个基于 nodejs 的工具,你在安装这个工具之前需要保证自己的电脑上安装有 nodejs。用下面这个命令在
可以检查是不是已经安装了 nodejs。
在 Windows 环境下安装 nodejs
打开这个网站
点击页面中间大大的
,然后就会下载安装包,然后运行它一直下一步下一步就可以了。
在 Mac OS X 环境下安装 nodejs
可以像 Windows 一样去官网下载安装包,不过有一个更有逼格的安装方法,如下命令:
brew install node
通过 npm 安装 android-rename
一般情况下,安装了 node 就可以使用 npm 了,这是 nodejs 的包管理器,能自动帮你管理你的所有 nodejs 依赖项目。
输入下面命令安装 android-rename
npm -g install android-rename
然后就可以通过下面命令,来查询安装的 android-rename 的版本号:
rp --version
有一个简单清晰的命令行是一件非常重要的事情,重命名包名的功能如下:
rp r &projectDir& --package-name &newPackageName& [options]
cd /Users/hiro/Documents/workspaces
rp r qihoapptore --package-name cn.hiroz.appstore --with-providers --with-actions --with-processes
上面的命令中,第一行先切换到我装项目的目录中。 第二行的 qihoappstore 是当前位置的目录名字,如果已经在项目目录内,写
也是可以的。 然后 --package-name 指定了新的包名,--with-providers --with-actions --with-processes 是指包括自动修改所有 AndroidManifest.xml 中定义的 provider、action和所有的process。
如何知道命令可选项
通过如下命令获取重命名包名功能的帮助:
rp r --help
就能获取到一个简单的解释:
-p, --package-name &name&
指定要重命名的新包名
--with-providers
修改所有 AndroidManifest.xml 内定义和 java 代码中使用的 provider
的 android:authorities 属性
--with-actions
修改所有 AndroidManifest.xml 内定义和 java 代码中使用的 action 的
android:name 属性
--with-processes
修改所有 AndroidManifest.xml 内定义和 java 代码中使用的 provider、receiver
的 anroid:process 属性
--prjtype &type&
内置的默认项目结构策略有三个预置的方案,根据不同项目类
型来搜索src目录和res目录位置
&type& 填写 as 为 Android Studio 项目
&type& 填写 eclipse 为 Eclipse 项目
&type& 填写 intellij 为 IntelliJ IDEA 项目
--main-project &dir&
如果项目有很多个 library 和 app module (module 是 AS 内的称呼)的情况下,
识别主项目的策略可能不准确,可以通过这一可选项进行手工
指定,&dir&填写相对目录位置即可
-P, --policy &jsconfig&
引入自定义策略文件的位置
默认的规则不够用
工具不是万能的,工具只能修改有规律可循的代码。每个人的代码都可以千差万别,怎么办?
这个工具支持使用外部的 nodejs 文件来配置所有的项目结构策略、文件分类策略、重命名策略。文档会很快完善。
如何贡献自己的代码
目前代码托管在 Github
项目的地址在:
您可以 Fork 然后发起 Pull Request
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 android包名修改 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信