怎样将应用工程在一个Android设备中安装成多个应用

一、必须修改:


1、修改package:


     AndroidManifest.xml里面的package,是一个Android应用在系统中的唯一标识,package相同的客户端在安装时会尝试覆盖(低版本不能覆盖高版本、不同数字签名的不能覆盖),应用在手机中的存储空间也是以package来命名的。(Application及Activity如果使用的相对路径,也需要修改)


     package="com.diandian"     =>     package="com.diandian2_3_2"


2、修改R文件:


     因为R文件是ADT自动生成的,保存在以应用package命名的文件夹下,所以修改了package后,应用中引入的R文件也需要修改。


     import com.diandian.R     =>     import com.diandian2_3_2.R


3、修改layout布局中的XML命名空间:


     如果应用中使用到了自定义组件的自定义属性,就需要在布局XML的开头生命需要使用自定义命名空间中的属性,如:

          xmlns:diandian="http://schemas.android.com/apk/res/com.diandian"

     最后的com.diandian就是使用的package,所以如果package变了,xmlns也需要修改。


     xmlns:diandian="http://schemas.android.com/apk/res/com.diandian"     =>     xmlns:diandian="http://schemas.android.com/apk/res/com.diandian2_3_2"  


二、应该修改:


     经过以上三处修改,这个工程应该就可以作为一个新的应用安装到手机中了,但是为了让新老应用之间完全没有冲突,应该至少还有以下两处需要考虑修改:


1、SD卡中的文件目录名


     这个容易理解,如果应用存储文件会产生冲突,则需要将两个应用的SD卡中的存储目录名也分开


     String APP_FOLDER_NAME = "diandian"->String APP_FOLDER_NAME = "diandian2_3_2"


2、在Activity、Service、BroadCast间跳转时,如果使用的是隐式Intent调用时,一般都设定了IntentFilter(像是Action、Scheme等),两个应用中相同的IntentFilter都    会接收相同的Intent,一个很容易出现的情况是,从一个程序中发广播,两个程序都可以接收到

转载自: Android Developer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值