android一个应用如何在一个手机上装多个不同版本的方法

本文介绍了如何在Android手机上安装同一应用的不同版本,包括测试版和正式版。通过更改应用的包名来实现这一目标,详细步骤包括:保存gen文件夹内容,修改配置文件中的包名,替换gen文件夹内容并刷新项目。这样就可以在同一设备上安装和区分不同版本的应用。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印


做客户端的APP项目,在网络请求的架构基类搭载完毕后,剩下的就很多都是直接调用基类中的网络请求方法去服务端拉取数据然后在手机上展示,但是有时候碰到架构师还没将基类搭好,或者服务端的接口没有开发完毕,这个时候就要自己在本地的做一些demo数据然后去展示,所以一般有时候客户端APP都会有本地demo演示版和服务端正式接口版本,也正是这种情况,有些客户就会给你一个难题了,我想在我手机上装一个测试版,一个正式版,对比下功能,可以么?

答案当然是可以,虽然很不推荐这样做,毕竟beta版和正式版装一个手机上还真没见过这种事例

那应该如何实现这种客户要求呢?

这个时候需要你对android包名、签名啊这些知识有一些基础了(ps:不懂的话大家可以搜索下)

因为相同包名,不同签名会要求你卸载掉之前的app才能安装,所以说方法就是通过修改包名的形式去实现


假如正式版的配置文件为:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.iamwsbear.viewdemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="org.iamwsbear.viewdemo.main.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

步骤一:编译通过后,我们先去项目中将gen文件夹中的内容拷贝出来


步骤二:修改包名

       修改配置文件中的信息如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.iamwsbear.viewdemo_demo"
    android:versionCode="1"
    android:versionName="1.0" >
    
    <original-package android:name="org.iamwsbear.viewdemo" />

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="org.iamwsbear.viewdemo.main.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

可以看到包名已经改为:
package="org.iamwsbear.viewdemo_demo"
而且添加了一段
<original-package android:name="org.iamwsbear.viewdemo" />
把项目clean一下,大家会发现项目报错了,如图:



别急,接下来


步骤三:将之前拷贝出来的gen文件夹下的内容复制进项目,然后F5(refresh)一下,果断不报错了(ps:如果配置文件有自定义命名空间的话,需要改成新包名),而且发现gen文件下面有2个package,分别对应我们之前的包名和后面的包名,这是因为用之前的包名的文件可以让项目找到之前对应生成的文件,就不会去报错了


接着你就可以去把这个应用安装到同一个手机上了,因为不同包名,对于android来说就是不同项目了

多个的话就多改几个包名就行啦。


转载请注明出处:iamwsbear@gmail.com




开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值