玩转Android studio 插件开发、测试、JCenter库发布(1)
来源:互联网 发布:苹果电脑系统删除软件 编辑:程序博客网 时间:2024/05/19 19:42
在安卓项目开发中,为了测试方便,将常用的测试函数,写成插件(或者模块),发布到JCenter仓库。这样带来的好处,避免了维护的繁琐,取而代之的是只需要一句简单的引用即可。
下面将分成android studio依赖库开发、依赖库的发布、android studio插件开发发布和插件的本地测试三个部分进行讲解。
一、android studio依赖库开发和发布
首先,需要说明的是“依赖库”这个名字是我自己起的。
依赖库的形式如下:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.1' //compile 'com.myutils:app:latest.release' //最新版本 compile 'com.myutils:app:0.2' //指定了具体的版本号}
看到上面形式,大家应该明白了吧,就是build.gradle中的依赖库。其中com.myutils:app:latest.release和com.myutils:app:0.2便是我们开发的依赖库,需要注意的是,这两个其实是同一个依赖库,只是版本号不同而已,前一个表示获取最新版本号的依赖库,后者表示获取0.2版本的依赖库。
在了解了基本的概念后,此时可以进入依赖库的开发之旅了!!
首先,创建myutils安卓工程。
如下:
很简单一个工程,代码是自动生成的。关于代码,应该不用多说什么了吧!
另外,为了增加点难度,添加了NDK 代码,原因是,我们可以将关键代码写到NDK中,防止被破解。此时的工程结构如下:
观察目录结构,区别就是多了一个JNI目录,里面添加了c代码。c代码如下:
#include <string.h>#include <jni.h>#include "example_com_myutils_MainActivity.h"JNIEXPORT jstring JNICALL Java_example_com_myutils_MainActivity_stringFromJNI (JNIEnv *env, jobject obj){ return (*env)->NewStringUTF(env, "Hello this is my utils");}
为了讲解的简单,此处我只返回简单字符串。
另外,我们还需要修改下MainActivity类的代码,如下:
package example.com.myutils;public class MainActivity { private native String stringFromJNI(); static { System.loadLibrary("hello-jni"); } public String getString(){ return stringFromJNI(); }}
上面的代码很简单,就是加载动态库,并从静态库获取字符串,其中public String getString()函数便是我们依赖库的核心功能,此处只是简单的获取一个字符串,更多功能,还是需要读者自己来实现了。
另外需要注意的是,此处我偷懒了,利用了原来的类MainActivity。真正开发时,需要换成自己的工具类。还有一点,由于只是个依赖库,如果里面的资源等等,没有应用到,可以把manifest.xml和资源文件全部删除,减小体积。
作为最后一步,来到build.gradle构建脚本。
首先,将
apply plugin: 'com.android.application'
修改为:
apply plugin: 'com.android.library'
添加依赖库的名称和版本号,具体代表什么意思,会在下一节讲解,如下:
group = "com.myutils"version = "0.2"
此时,完整的build.gradle脚本如下:
apply plugin: 'com.android.application'group = "com.myutils"version = "0.1"android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "example.com.myutils" minSdkVersion 8 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk { moduleName "hello-jni" ldLibs "log", "z", "m" abiFilters "armeabi", "armeabi-v7a", "x86" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.1'}
其中,需要说明的是,里面原有的依赖库等等,都可以删除的。如果不需要编译依赖库的时候,编译NDK,可以把version = “0.1”以下的内容全部删除掉。
上面便是我们的依赖库的开发,简单,却五脏俱全。
下一章,我们接着讲解如何发布到JCenter库。
- 玩转Android studio 插件开发、测试、JCenter库发布(1)
- 玩转Android studio 插件开发、测试、JCenter库发布(2)
- 玩转Android studio 插件开发、测试、JCenter库发布(3)
- 玩转Android studio 插件开发、测试、JCenter库发布(4)
- Android Studio发布到Jcenter
- 使用Android Studio将开源库发布到Jcenter中央库
- 最新 Android studio 发布Library库到JCenter服务器
- 使用Android Studio发布开源库到Bintray/Jcenter(新)
- 使用Android Studio发布开源库到Bintray/Jcenter(新)
- Android Studio发布项目到Jcenter
- Android Studio发布项目到Jcenter
- 使用Android studio发布项目到jcenter
- Android Studio发布项目到Bintray jCenter
- Android Studio发布项目到jCenter
- Android Studio 发布项目到Jcenter
- Android Studio发布项目到Jcenter
- android studio 发布 library 到jcenter步骤
- Android开发:如何把Android studio中的Library发布到Jcenter
- 轻松制作GIF动画!教你玩转PS时间轴之5个小技巧篇
- UVA 11437 Triangle Fun 几何基础
- How do I write things in Swift?
- Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏
- 物流接口查询
- 玩转Android studio 插件开发、测试、JCenter库发布(1)
- Hbase原理、基本概念、基本架构
- 设计模式(Design Patterns)
- 1》找到接口-浏览器-收集接口
- SQLite 基本操作--查看数据表信息
- VC中L""和_T("")的区别
- 258. Add Digits
- 使用PopupWindow由下向上弹出自定义窗口
- Haar特征