Android同一套代码打多个APP包并能够在同一个手机上安装运行
16lz
2021-01-23
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名称 (点击跳页查看)
更多相关文章
- android实现短按电源键关机的实现代码
- android sqlite 批量插入数据优化代码
- Android 几种加密解密的方法(仅代码)
- 《第一行代码--Android》 Git时间
- android 笔记 --- Android-图片透明度处理代码
- android时间对话框的核心代码
- Android 代码实现按钮 按下弹起事件