作家
登录

为什么要开发Android库?

作者: 来源: 2017-09-08 10:04:38 阅读 我要评论

在你预备要宣布你的库的时刻,你会作何选择?今朝有两个选择:宣布 Jar, 或者宣布 Aar(Android 归档文件),如不雅你还不知道 Aar,我来做个简单介绍,Aar 是 Google 为了能让库文件包含 UI 元素而提出的一种文件格局,他可以让你不仅仅包含 Java 类,还可以存储数据和资本在琅绫擎。他在 Android 和 Android Studio 上异常有效,Ant 和 Eclipse 并不支撑这种格局。

一个不好的工作是尽管应用本地的 Aar 是可行的,有两种筹划来实现这个,但他们都很麻烦。尤其是你想用你方才生成的 Aar 来做 App 测试。所以,若何选择宣布哪种格局,最后就归结为,你是否必须要支撑 Eclipse,如不雅是,那么没灯揭捉?,只能用 Jar。

问题产生的原因就是因为 Android Gradle 插件产生的是 Aar,而不是 Jar 文件,尽管如斯,事实上 Jar 文件旧包含在 Aar 文件里,其实你只要复制出来 Jar 文件,然后重定名他就好了。下面的代码就是一个简单的 Gradle Demo 来做这件工作: 拷贝文件(平日会被定名为:’classes.jar’),然后重定名成你想要的名字。

  1. task generateJar(type: Copy) { 
  2.     group 'Build' 
  3.     description 'blah blah...' 
  4.     dependsOn assemble 
  5.     from 'build/intermediates/bundles/release/classes.jar' 
  6.     into 'build/libs' 
  7.     rename('classes.jar''awesome-library.jar'

下一?问题是:我们应当宣布在哪?如不雅你筹划开源它,那么想都不消想,就用酷炫的 Bintray 。Bintray 尽管须要你预备更多的器械,但依旧用起来异常简单。仅仅须要一个源码 Jar 文件,以及一个 Javadoc 的 Jar 文件,这两个都异常轻易生成。如许一来,你根本上只要指定代码路径,就可以遍历所有的 Variant。

  1. // sources Jar 
  2. task androidSourcesJar(type: Jar) { 
  3.     from android.sourceSets.main.java.srcDirs  
  4.  
  5. // Javadoc Jar 
  6. android.libraryVariants.all { variant -> 
  7.     task("javadoc${variant.name.capitalize()}", type: Javadoc) { 
  8.         description "Generates Javadoc for $variant.name." 
  9.         group 'Docs' 
  10.         source = variant.javaCompile.source 
  11.         ext.androidJar = files(plugins 
  12.                                 .findPlugin("com.android.library"
  13.                                 .getBootClasspath()) 
  14.         classpath = files(variant.javaCompile.classpath.files) + 
  15.                     ext.androidJar 
  16.         exclude '**/BuildConfig.java' 
  17.         exclude '**/R.java' 

  18.   推荐阅读

      如何把Go调用C的性能提升10倍?

    今朝,当Go须要和C/C++代码集成的时刻,大年夜家最先想到的肯定是CGO。毕竟是官方的解决筹划,并且简单。调用C函数的时刻,必须切换当前的┞坊为线程的主栈,这带来了两个比较严重的问题:>>>详细阅读


    本文标题:为什么要开发Android库?

    地址:http://www.17bianji.com/lsqh/37244.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)