Android同一套代码打多个APP包并能够在同一个手机上安装运行

  • Android同一套代码打多个APP包并能够==在同一个手机上安装运行==,同时==APP名称、桌面icon图标也都不同==
  • 给同一套代码起不同的多个包名,并把APP名称和桌面图标设置为根据每个APP判断显示哪个的
      • build.gradle
  • 使用
      • AndroidManifest.xml
  • 完成
  • 优化
      • 第二种方法
  • 其他

Android同一套代码打多个APP包并能够在同一个手机上安装运行,同时APP名称、桌面icon图标也都不同

需要能够在同一个手机上运行:只有修改的包名不同,才能使同一套代码在同一个手机上运行。

给同一套代码起不同的多个包名,并把APP名称和桌面图标设置为根据每个APP判断显示哪个的

build.gradle

app下的build.gradle中:

apply plugin: 'com.android.application'android {    compileSdkVersion 27    defaultConfig {        applicationId "com.xxx.papplicationId1"        minSdkVersion 14        targetSdkVersion 27        versionCode 1        versionName '1.0.0'        // -------------------------- 注意这里 ! ! ! --------------------------        // 版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了        flavorDimensions "versionCode"        // -----------------------------------------------------------------------        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"   }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }        buildToolsVersion '27.0.3'        // -------------------------- 注意这里 ! ! ! --------------------------    productFlavors {        // 通用app        app1 {            // 设置applicationId(这里很重要,两个相同applicationId的apk不同同时安装在同一台Android手机中)            applicationId "com.xxx.applicationId1"            // 自动生成@string/app_name为 app1的名称            // 注意,这里是添加,在 string.xml 不能有这个字段,会重名!!!            resValue "string", "app_name", "app111"            // 定义app_icon等字段,在AndroidManifest.xml文件中用到            manifestPlaceholders = [app_icon     : "@mipmap/ic_launcher",                                    app_roundicon: "@mipmap/ic_launcher",                                    // 因为每个APP包名不同,所以需要单独配置每个APP的第三方key                                    // 修改 AndroidManifest.xml 里 地图appkey                                    map_appkey   : "xxxxxxxxxxxxxx"]        }        // app2        app2 {            applicationId "com.xxx.applicationId2"            resValue "string", "app_name", "app222"            manifestPlaceholders = [app_icon     : "@mipmap/ic_launcher2",                                    app_roundicon: "@mipmap/ic_launcher2",                                    map_appkey   : "xxxxxxxxxxxxx"]        }    }    // -----------------------------------------------------------------------    // 移除lint检测的error    lintOptions {        checkReleaseBuilds false        abortOnError false    }    sourceSets.main {        jniLibs.srcDirs = ['libs']    }}dependencies {......}allprojects {    repositories {        flatDir {            dirs 'libs'        }    }}

使用

AndroidManifest.xml

            

完成

优化

第二种方法

  • 第一步 : build.gradle 中修改 - 同上方 ;
  • 第二步 : 在app -> src 中新建文件夹 , 文件夹名称同打包的名 , 例如 “app2” , 然后在 “app2” 下新建文件夹 “res” , 然后在 “res” 下创建文件夹 “mipmap-xxhdpi” ; 然后在这个文件夹下存放 app2 要用的启动图等 , 图片名称同 app1 即可 .
  • 完成 . 这种方法打包时不会打上其他包的东西 .

其他

# AndroidStudio中修改打包生成的apk名称 (点击跳页查看)

更多相关文章

  1. android实现短按电源键关机的实现代码
  2. android sqlite 批量插入数据优化代码
  3. Android 几种加密解密的方法(仅代码)
  4. 《第一行代码--Android》 Git时间
  5. android 笔记 --- Android-图片透明度处理代码
  6. android时间对话框的核心代码
  7. Android 代码实现按钮 按下弹起事件

随机推荐

  1. Android应用开发相关下载资源(2013/03/22
  2. Android(安卓)error: Failed to install
  3. Android的Notification研究
  4. Android(安卓)UI设计系统-android select
  5. Android学习笔记之mainfest文件中android
  6. Android(安卓)用户界面
  7. Ubuntu编译Android整个系统以及编译指定
  8. Android中使用Intent实现界面跳转
  9. android界面开发小结——android笔记---
  10. 关于android.R.id.text1