android studio的开发和使用SDK总结

来源:互联网 发布:程序员杂志 2016 pdf 编辑:程序博客网 时间:2024/05/22 07:03

从网上看了许多资料。并且发现好多博客写的不太准确。只好自己总结一下了。

一、开发SDK

一般开发SDK都是基于自己已写的已写项目制作的。

  首先更改项目中gradle的配置。applyplugin:'com.android.application'改为applyplugin:'com.android.library'。

不出意外的话就可以构建成功了。网上说要依赖中要加入

 compile project(':mylibrary')
我加入这个反而报错了。不知道原因。
然后重新build一下项目,在build/outputs/aar中就得到了aar包(jar包在/build/intermediates/bundles/debug(release)/classes.jar中
要注意的一些坑,虽然打包成功了,但是不能用啊。。。为什么呢,
(1)manifest中 原先项目中的启动类,
<activity android:name=".MainActivity">    <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />    </intent-filter></activity>
这样集成后就有两个启动类了。。。所以要修改这里。
(2)application中android:icon这个属性会和打包sdk冲突。所以,要去掉。
好了问题差不多解决了。但是你想没想,怎么隐藏自己的类和一些资源呢?(因为类和资源都是默认公开的),哈哈,继续听。
怎么隐藏类:这个国内还是有一点资料的。就是用混淆文件。
buildTypes {    release {        minifyEnabled true        proguardFiles 'proguard-android.txt'    }   }
这样就可以了。至于怎么写混淆文件,这方面资料很多。不在细说了。
怎么隐藏资源:从https://developer.android.com/studio/projects/android-library.html#PrivateResources官网上我查到了一些资料。具体翻译过来就是在res/vaules下新建一个文件public.xml。例如:
<resources>    <public name="mylib_app_name" type="string"/>    <public name="mylib_public_string" type="string"/></resources>
如果都不想公开的话就用
<public />就可以了。是不是很方便。
接下来就是使用的问题了。
二、使用SDK aar包
首先你要配置gradle 像这样
repositories {    flatDir {        dirs 'libs'    }}

构建中加入Flat Directory仓库。这样系统就会从lib目录下搜索依赖。

然后依赖你的aar包。
compile(name: 'app-debug', ext: 'aar'),然后就去使用aar吧!