Skip to content

Commit 8d0238a

Browse files
committed
增加差异化打包配置
1 parent 9ac430b commit 8d0238a

File tree

6 files changed

+119
-8
lines changed

6 files changed

+119
-8
lines changed

app/build.gradle

+28-5
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,57 @@ static def getTime() {
66

77
android {
88
compileSdkVersion 28
9+
910
defaultConfig {
10-
applicationId "com.fantasy.blogdemo"
1111
minSdkVersion 21
1212
targetSdkVersion 28
1313
versionCode 1
1414
versionName "1.0"
1515
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1616
}
17+
1718
buildTypes {
1819
release {
1920
minifyEnabled false
2021
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
2122
}
2223
}
24+
25+
// 差异化打包配置
26+
flavorDimensions "mode"
27+
28+
productFlavors {
29+
simple { // 简易版
30+
applicationId "com.fantasy.blogdemo"
31+
resValue "string", "app_name", "BlogDemo"
32+
buildConfigField "String", "SERVER_URL", "\"https://fantasy.com\""
33+
}
34+
profession { // 专业版
35+
applicationId "com.fantasy.blogdemo.pro"
36+
resValue "string", "app_name", "BlogDemoPro"
37+
buildConfigField "String", "SERVER_URL", "\"https://fantasy.pro.com\""
38+
}
39+
}
40+
41+
// 自定义安装包的名称,这里使用了 productFlavors 的名称,这样简易版和专业版的安装包也就可以区分出来了
2342
applicationVariants.all { variant ->
2443
variant.outputs.all {
25-
outputFileName = "BLOG_V${variant.versionName}_${variant.versionCode}_${getTime()}.apk"
44+
outputFileName = "BLOG_V${variant.versionName}_${variant.versionCode}_${getTime()}" +
45+
"_${variant.productFlavors[0].name}.apk"
2646
}
2747
}
2848
}
2949

3050
dependencies {
51+
testImplementation 'junit:junit:4.12'
52+
androidTestImplementation 'com.android.support.test:runner:1.0.2'
53+
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
3154
implementation fileTree(dir: 'libs', include: ['*.jar'])
3255
implementation 'com.android.support:appcompat-v7:28.0.0'
3356
implementation 'com.android.support:cardview-v7:28.0.0'
3457
// 权限申请,https://github.com/soulqw/SoulPermission
3558
implementation 'com.qw:soulpermission:1.1.7'
36-
testImplementation 'junit:junit:4.12'
37-
androidTestImplementation 'com.android.support.test:runner:1.0.2'
38-
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
59+
60+
/******************** 下面是 profession 专业版 单独需要的依赖 ********************/
61+
professionImplementation 'com.qmuiteam:qmui:1.2.0'
3962
}

app/src/main/res/values/strings.xml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<resources>
2-
<string name="app_name">BlogDemo</string>
32

43
<!-- 共用的 -->
54
<string name="btn_confirm">确定</string>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.fantasy.blogdemo.main;
2+
3+
import android.content.Intent;
4+
import android.graphics.Color;
5+
import android.os.Build;
6+
import android.os.Bundle;
7+
import android.os.Handler;
8+
import android.view.View;
9+
10+
import com.fantasy.blogdemo.BuildConfig;
11+
import com.fantasy.blogdemo.R;
12+
import com.fantasy.blogdemo.base.BaseActivity;
13+
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
14+
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
15+
16+
/**
17+
* 主界面(专业版)
18+
* <pre>
19+
* author : Fantasy
20+
* version : 1.0, 2020-05-30
21+
* since : 1.0, 2020-05-30
22+
* </pre>
23+
*/
24+
public class WelcomeActivity extends BaseActivity {
25+
26+
@Override
27+
protected void onCreate(Bundle savedInstanceState) {
28+
super.onCreate(savedInstanceState);
29+
// 解决Android应用Launcher重复启动的问题
30+
if (!isTaskRoot() && getIntent() != null) {
31+
String action = getIntent().getAction();
32+
if (getIntent().hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
33+
finish();
34+
return;
35+
}
36+
}
37+
setContentView(R.layout.activity_welcome);
38+
39+
// 全屏,透明状态栏
40+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
41+
View decorView = getWindow().getDecorView();
42+
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
43+
decorView.setSystemUiVisibility(option);
44+
getWindow().setStatusBarColor(Color.TRANSPARENT);
45+
}
46+
47+
new QMUIDialog.MessageDialogBuilder(this)
48+
.setMessage("服务器地址为:" + BuildConfig.SERVER_URL)
49+
.addAction(R.string.btn_confirm, new QMUIDialogAction.ActionListener() {
50+
@Override
51+
public void onClick(QMUIDialog dialog, int index) {
52+
dialog.dismiss();
53+
new Handler().postDelayed(new Runnable() {
54+
@Override
55+
public void run() {
56+
MainActivity.actionStart(WelcomeActivity.this);
57+
finish();
58+
}
59+
}, 1500);
60+
}
61+
})
62+
.show();
63+
}
64+
}
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<resources>
2+
3+
<!-- Base application theme. -->
4+
<style name="AppTheme" parent="QMUI.Compat.NoActionBar">
5+
<!-- Customize your theme here. -->
6+
<item name="colorPrimary">@color/colorPrimary</item>
7+
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
8+
<item name="colorAccent">@color/colorAccent</item>
9+
</style>
10+
11+
</resources>

app/src/main/java/com/fantasy/blogdemo/main/WelcomeActivity.java renamed to app/src/simple/java/com/fantasy/blogdemo/main/WelcomeActivity.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,17 @@
66
import android.os.Bundle;
77
import android.os.Handler;
88
import android.view.View;
9+
import android.widget.Toast;
910

11+
import com.fantasy.blogdemo.BuildConfig;
1012
import com.fantasy.blogdemo.R;
1113
import com.fantasy.blogdemo.base.BaseActivity;
1214

1315
/**
14-
* 主界面
16+
* 主界面(简易版)
1517
* <pre>
1618
* author : Fantasy
17-
* version : 1.0, 2019-06-05
19+
* version : 1.1, 2020-05-30
1820
* since : 1.0, 2019-06-05
1921
* </pre>
2022
*/
@@ -41,6 +43,18 @@ protected void onCreate(Bundle savedInstanceState) {
4143
getWindow().setStatusBarColor(Color.TRANSPARENT);
4244
}
4345

46+
// 因为简易版没有依赖 QMUI,所以无法使用 QMUIDialog
47+
Toast.makeText(this, "服务器地址为:" + BuildConfig.SERVER_URL, Toast.LENGTH_LONG).show();
48+
// new QMUIDialog.MessageDialogBuilder(this)
49+
// .setMessage("服务器地址为:" + BuildConfig.SERVER_URL)
50+
// .addAction(R.string.btn_confirm, new QMUIDialogAction.ActionListener() {
51+
// @Override
52+
// public void onClick(QMUIDialog dialog, int index) {
53+
// dialog.dismiss();
54+
// }
55+
// })
56+
// .show();
57+
4458
new Handler().postDelayed(new Runnable() {
4559
@Override
4660
public void run() {

0 commit comments

Comments
 (0)