Plaid Source Reading Notes

Plaid源码阅读笔记。

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

<!-- 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

<!-- 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配置的数据,比如下面的配置不同的渠道

//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字段

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中配置

# 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就会看到添加的字段

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的版本统一

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}"
    ...
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后台及大数据开发

CentOS下 elasticsearch集群安装

4.修改/root/elasticsearch-node3/config/elasticsearch.yml 为如下内容(注意红色部分为三个节点不一致的地方)

12030
来自专栏10km的专栏

cmake:msvc编译第三方库时使用/MT静态库连接c/c++ runtime library

关于在cmake生成msvc工程时静态链接c/c++运行库的问题,很久以前写过一篇博客《cmake设置msvc的运行库(runtime library)塈指定o...

42570
来自专栏Kubernetes

kube-scheduler最佳配置

version: kubernetes 1.6.2 ##kube-scheduler Configuration 下面是我梳理的kube-scheduler的完...

34380
来自专栏后台及大数据开发

CentOS下 elasticsearch集群安装

4.修改/root/elasticsearch-node3/config/elasticsearch.yml 为如下内容(注意红色部分为三个节点不一致的地方)

12920
来自专栏生信技能树

(15)基因组各种版本对应关系-生信菜鸟团博客2周年精选文章集

这是我的成名作: 首先是NCBI对应UCSC,对应ENSEMBL数据库: GRCh36 (hg18): ENSEMBL release_52. GRCh37 (...

53280
来自专栏张善友的专栏

Windows Server AppFabric Beta 2 已经发布

Windows Server AppFabric Beta 2是一个包含完全功能的AppFabric版本(This build represents our “...

19050
来自专栏大大的微笑

ActiveMQ几个重要的配置文件

version:5.10,在5.8以后增加了levelDB的方式进行集群配置 ①.wrapper.conf: # -----------------------...

1.4K90
来自专栏名山丶深处

springboot集成redis(mybatis、分布式session)

45940
来自专栏Java3y

Mybatis【与Spring整合】

Mybatis第五篇【Mybatis与Spring整合】 既然我们已经学了Mybatis的基本开发了,接下来就是Mybatis与Spring的整合了! 以下使用...

27240
来自专栏杂烩

spark整合hive+hbase做数据实时插入及实时查询分析

        使用的spark是2.0.1,hive是1.2.1,hbase是1.2.4,hadoop是2.6.0,zookeeper是3.4.9

13940

扫码关注云+社区

领取腾讯云代金券