日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 运行jar包,android将so打到jar包中并运行-Go语言中文社区

發(fā)布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 运行jar包,android将so打到jar包中并运行-Go语言中文社区 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

加載so有兩種方法

System.load() 和System.loadLibrary(); 前者需傳入庫文件的絕對路徑,后者只需傳入庫文件名。

首先我的jar包目錄如下:

Loader是加載類:

static {

try {

InputStream is = null;

if(isCPUInfo64()) {

is = Loader.class.getResource("arm64/libhellojni.so").openStream();

}else {

is = Loader.class.getResource("arm32/libhellojni.so").openStream();

}

File tempFile = File.createTempFile("hellojni", ".so");

FileOutputStream fos = new FileOutputStream(tempFile);

int i;

byte[] buf = new byte[1024];

while ((i = is.read(buf)) != -1) {

fos.write(buf, 0, i);

}

is.close();

fos.close();

System.load(tempFile.getAbsolutePath());

tempFile.deleteOnExit();

} catch (IOException e) {

e.printStackTrace();

}

}

private static boolean isCPUInfo64() {

File cpuInfo = new File("/proc/cpuinfo");

if (cpuInfo != null && cpuInfo.exists()) {

InputStream inputStream = null;

BufferedReader bufferedReader = null;

try {

inputStream = new FileInputStream(cpuInfo);

bufferedReader = new BufferedReader(new InputStreamReader(inputStream), 512);

String line = bufferedReader.readLine();

if (line != null && line.length() > 0 && line.toLowerCase(Locale.US).contains("arch64")) {

return true;

} else {

return false;

}

} catch (Throwable t) {

Log.d("isCPUInfo64", " error = " + t.toString());

} finally {

try {

if (bufferedReader != null) {

bufferedReader.close();

}

if (inputStream != null) {

inputStream.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

return false;

}

總結(jié)

以上是生活随笔為你收集整理的android 运行jar包,android将so打到jar包中并运行-Go语言中文社区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。