? ? ? ? 上篇文章中我們講述了怎么去開發中間件
????????Android framework 中間件開發(一)
? ? ? ? 這篇我們講一下怎么打包中間件給外部應用使用
目錄
? ? ? ? 1.新建項目
????????2.編寫jar包代碼
? ? ? ? 3.打包jar包
????????4.使用jar包
? ? ? ? 我們可以直接將系統編譯出來的framework的jar包拿出來直接用,但是為了安全起見,防止用戶調用不該用的API,所以我們需要將framework的jar包再打包一層,只暴露需要的函數
? ? ? ? framework的jar包位置:
out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes-header.jar
? ? ? ? 1.新建項目
? ? ? ? 打開AndroidStudio,隨便新建一個空項目,然后點擊左上角File->New->New Module
新建一個模塊之后,將classes-header.jar復制到module的libs目錄下(沒有的話新建一個)
目錄結構如下:
編輯mudule的build.gradle,添加如下幾行:
將jar包添加到項目中:
implementation fileTree(dir: 'libs', include: ['*.jar'])
生成新的jar包,并指定路徑和名字:
task makeJar(type: Copy) {delete 'build/libs/darksdk.jar'from('build/intermediates/aar_main_jar/debug/')into('build/libs/')include('classes.jar')rename ('classes.jar', 'darksdk.jar')
}
makeJar.dependsOn(build)
然后點擊右上角的Sync Now,
????????2.編寫jar包代碼
? ? ? ? 在module中,新建一個類,這個就是外部應用調用的類.
package com.example.darklib;import android.annotation.SuppressLint;
import android.content.Context;import android.darkcontrol.DarkControlManager;public class DarkManager {private Context context;private DarkControlManager darkControlManager;@SuppressLint("WrongConstant")public DarkManager(Context context) {this.context = context;darkControlManager = (DarkControlManager)context.getSystemService("dark_control");}/*** 設置亮度* @param bright 0~1*/public void setBright(float bright) {darkControlManager.setBright(bright);}
}
? ? ? ? 3.打包jar包
?編寫完成之后點擊這邊:
等編譯完成后:
這便是我們給客戶的jar包了??
????????4.使用jar包
? ? ? ? 和上面的使用步驟一樣,將darksdk.lib復制出來,放到項目的libs目錄下,并在build.gradle的dependencies節點下添加
implementation fileTree(dir: 'libs', include: ['*.jar'])
然后點擊右上角的Sync Now,
? ? ? ? 在項目中調用:
至此打包中間件和使用jar包步驟完成?
下一篇我們講中間件中添加C++代碼:
Android framework 中間件開發(三)