如何快速修改/更换android应用的包名

       参见:http://xhmj12.blogspot.com/2015/05/android-appappappgoogle-playgoogle_15.html

 

        在做Android app开发时,经常遇到需要修改app包名的情况。例如,你发布了一个app到google play市场,由于其他不符合google play政策很被下架,而你又想重新上架你的app,那么你就不得不更换你的app包名。或者测试时也经常遇到这样的需求。那么如何在现有app的代码继承上快速修改你的app包名呢?

 

        我们可能标准的做法是:假设我们是eclipse等IDE开发环境,那么,我们可以点击到主包名上,然后右键——> "refactor" ——> "rename"  ——> 在弹出的对话框修改包名,同时勾选"Upate references"或者"Renanme subpackages"。这样IDE环境就会帮你修改完成app包名,同时manifest.xml文件里的等包名相关的地方也改动过来了。而代码中写死的包名字符串的地方需要你手动改动下。这样你就完成了修改包名。

 

        这样做,可能有几个缺点:

           1.比较麻烦;

           2.有时需要手动更改硬编码到代码中的包名字符串;

           3.再改回来比较麻烦,因为需要改动源代码的包名;

           4.当依赖工程较多时,这种改动的麻烦就更显麻烦。

 

        有没有更快更好更便捷的方法呢?只让我们改动标识应用的包名,而不改变原来程序源代码的包名呢?

 

         有,首先,我们要改变一个固有思维:包名唯一标识一个app,但这个包名指的是manifest.xml的<manifest>根标签下的package = "com.xxx.xxx";和程序源代码的包名没有任何关系,可以和组织程序源代码的包名相同也可以不同。但一般相同。

 

        有了上面的认识,我们就可以轻松的修改一个app的包名了。只需修改manifest.xml的<manifest>根标签下的package = "com.xxx.xxx"的package属性就可以了,而不需要修改src源代码文件夹下的类的包了。这是gen中生成的R文件的包名就修改了,这是就需要修改类里引用到R文件的import语句。然后修改mainifest文件里的组件(如<Activity>)声明的"name"属性里的相对路径声明的地方改成绝对路径声明,然后这样你的应用就相当于另外一个app了。

 

         这样改动回来也很方便,修改回manifest.xml的<manifest>根标签下的package = "com.xxx.xxx"的package属性,然后修改工程里的import语句的R文件引用错误就ok了。

 

         还有,有时我们可能遇到这样的争论:在manifest文件里声明activity等组件时,是配置成绝对路径(全引用包名)还是相对路径好?这方面可能给我们一点答案。我们知道声明成相对路径需要src/文件下类的包名和manifest里根标签下的package属性值一致。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值