一套源码编译多个APP
用Android Studio 开发软件,一定要熟悉Gradle的使用。一套源码编译多个APP,就是通过Gradle实现的。下面就先简单介绍一下怎么使用Gradle编译多个APP,以后会逐步深入解读。
要求:APP 名字 APP 包名 APP 图标 界面颜色 不同
1.新建两个目录
在app -> src -> 目录右键 -> New -> Directory 新建两个目录 把各个app
需要的资源文件,分开拷贝,需要什么界面效果,在各自的资源文件配置就好。
2.我们在 app的gradle下 添加如下代码
APP唯一标识 版本号 APP名字(使用占位符,在清单文件替换的)
android {
compileSdkVersion 26
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.wh.myapplication"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
//================================以下代码===========================================================
productFlavors {
WengCang {
applicationId "com.wengcang.android"
versionCode 1
versionName "1.0"
manifestPlaceholders = [ appName : "文藏" ]
}
TouTiao {
applicationId "com.toutiao.android"
versionCode 1
versionName "1.0"
manifestPlaceholders = [ appName : "头条" ]
}
}
//=================================以上代码====================================================================
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
3.清单文件主要是APP名字的设置。
如果需要集成 推送,支付, 第三方登录等,每个APP的配置都是唯一的,这时可以用占位符解决。
例如APP名字。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.wh.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="${appName}"//=================APP名字用占位符解决。从gradle引用对应的名字==================================
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
4.上面已经一步步配置好了之后,会有下图这些东西,选择完成之后再点击 Run 安装
自此简单的一套代码管理多个APP的使用就轻松搞定,以后会详细怎么高效的使用一套代码管理多个APP,
比如:所有APP都用一套用户平台的代码,资源API有各自的特点,各个客户端接口相互挂接。
原文发布时间为:2018-09-4
本文来自云栖社区合作伙伴“Android开发中文站”,了解相关信息可以关注“Android开发中文站”。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android开发教程 - 使用Data Binding(三)在Activity中的使用
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fragment中的使用 使用Data Binding(五)数据绑定 使用Data Binding(六)RecyclerView Adapter中的使用 使用Data Binding(七)使用BindingAdapter简化图片加载 使用Data Binding(八)使用自定义Interface 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法 修改activity布局 如果使Activity支持Data Binding,在布局的最外层加入”<layout>”标签即可,由于是加在最外层,所以即使重构现有工程,所做的修改也非常简单,并不会影响现有的布局结构。 以下以MainActivity进行举例。 修改前activty_main.xml的布局: <?xml version="1.0" encoding="utf-8"?> &l...
- 下一篇
Java基础之HashMap源码解析
Java集合源码解析系列 Java基础之LinkedHashMap源码解析 Java基础之ArrayList源码解析 HashMap public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { /** * 默认容量为16,必须为2的倍数 */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; /** * 最大的容量,必须为2的倍数且不超过2^30 */ static final int MAXIMUM_CAPACITY = 1 << 30; /** * Java8中对HashMap进行了优化,当数组容量超过64,而链表长度超过8时,就会将链表转换为红黑树 */ static final int TREEIFY_THRESHOLD = 8; /** * 在调用resize方法进行初始化或是扩容操作时,当数组下面的链表长度不超过6时,就会将链表...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度