码迷,mamicode.com
首页 > 其他好文 > 详细

Library弱依赖打包

时间:2018-06-04 23:28:31      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:ast   UI   pcl   cti   cep   参考   动态   ace   运行时   

为减少强依赖,运行时动态监测依赖是否存在。

例如:内置的 HTTP client 可以是 OkHttpClient 或者是 HttpURLConnection。前者拥有更高的性能,但需要引入 OkHttp 作为依赖。如果用户不愿意引入 OKHttp 的话,它将会自动用回标准库的 HttpURLConnection。

public final class PlacesHttpClientResolver {
  public static final PlacesHttpClient PLACES_HTTP_CLIENT;

  static {
    boolean hasOkHttp;
    
    try {
      Class.forName("com.squareup.okhttp.OkHttpClient");
      hasOkHttp = true;
    } catch (ClassNotFoundException e) {
      hasOkHttp = false;
    }

    PlacesApiJsonParser parser = JsonParserResolver.JSON_PARSER;

    PLACES_HTTP_CLIENT = hasOkHttp ? new OkHttpPlacesHttpClient(parser) : new HttpUrlConnectionMapsHttpClient(parser);
  }

  private PlacesHttpClientResolver() {
    throw new RuntimeException("No Instances!");
  }
}

 

 

参考:https://github.com/hehonghui/android-tech-frontier/blob/master/issue-33/Android%20Libraries%E7%9A%84%E4%BE%9D%E8%B5%96%E7%AE%A1%E7%90%86.md

Library弱依赖打包

标签:ast   UI   pcl   cti   cep   参考   动态   ace   运行时   

原文地址:https://www.cnblogs.com/albert1017/p/9136308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!