前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Plaid Source Reading Notes

Plaid Source Reading Notes

作者头像
宅男潇涧
发布2018-08-01 15:08:21
3800
发布2018-08-01 15:08:21
举报
文章被收录于专栏:潇涧技术专栏潇涧技术专栏

Plaid源码阅读笔记。

1.AndroidManifest文件中的activity-alias使用

代码语言:javascript
复制
<!-- use an alias in case we want to change the launch activity later without breaking
     homescreen shortcuts.  Note must be defined after the targetActivity -->
<activity-alias
    android:name=".Launcher"
    android:label="@string/app_name"
    android:targetActivity=".ui.HomeActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity-alias>

2.在application中配置meta-data

代码语言:javascript
复制
<!-- Glide configurations for image loading -->
<meta-data
    android:name="io.plaidapp.util.glide.GlideConfiguration"
    android:value="GlideModule" />
<meta-data
    android:name="com.bumptech.glide.integration.okhttp.OkHttpGlideModule"
    android:value="GlideModule" />

甚至可以在AndroidManifest文件中获取到在Gradle配置的数据,比如下面的配置不同的渠道

代码语言:javascript
复制
//AndroidManifest
<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />

//build.gradle
productFlavors {
    playStore {
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "playStore"]
    }
    miui {
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "miui"]
    }
    wandoujia {
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
    }
}

3.Gradle中buildConfigField的配置 通过在Gradle文件中配置的buildConfigField可以在自动生成的BuildConfig文件中获取到,可以给不同的buildType设置不同的值。

build.gralde中添加一些BuildConfig字段

代码语言:javascript
复制
defaultConfig {
    applicationId "io.awesome"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"

    buildConfigField "String", "DRIBBBLE_CLIENT_ID", "\"${dribbble_client_id}\""
    buildConfigField "String", "DRIBBBLE_CLIENT_SECRET", "\"${dribbble_client_secret}\""
    buildConfigField "String", "DRIBBBLE_CLIENT_ACCESS_TOKEN", "\"${dribbble_client_access_token}\""
}

对于其中引用的字段值可以放在gradle.properties中配置

代码语言:javascript
复制
# Dribbble API
dribbble_client_id = xxx
dribbble_client_secret = yyy
dribbble_client_access_token = zzz

待Gradle Sync之后在文件app/build/source/BuildConfig/Build Varients/package name/BuildConfig就会看到添加的字段

代码语言:javascript
复制
public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "io.awesome";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
  // Fields from default config.
  public static final String DRIBBBLE_CLIENT_ACCESS_TOKEN = "xxx";
  public static final String DRIBBBLE_CLIENT_ID = "yyy";
  public static final String DRIBBBLE_CLIENT_SECRET = "zzz";
}

4.在Gradle中定义supportLibVersion做到supportlib的版本统一

代码语言:javascript
复制
ext {
    archivesBaseName = "plaid-${android.defaultConfig.versionName}"
    supportLibVersion = '23.1.0'
}

dependencies {
    compile "com.android.support:support-v4:${supportLibVersion}"
    compile "com.android.support:palette-v7:${supportLibVersion}"
    compile "com.android.support:recyclerview-v7:${supportLibVersion}"
    compile "com.android.support:cardview-v7:${supportLibVersion}"
    compile "com.android.support:design:${supportLibVersion}"
    compile "com.android.support:customtabs:${supportLibVersion}"
    ...
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015/12/11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档