<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Android自助餐之Jni(三)動態導入so文件 - [Android自助餐之Jni三動態導入so文件](#) - [拷貝so文件](#) - [創建jni對應類](#) - [FileUtil類](#) - [在需要的地方調用](#) 下載[完整源代碼](http://download.csdn.net/detail/xmh19936688/9395115) ### 拷貝so文件 假設so文件放在assets目錄下 創建assets文件夾:在main文件夾上右鍵->new->folder->AssetsFolder 將so文件及其文件夾(armeabi等)復制到assets文件夾 ### 創建jni對應類 本實例已知c文件內容如下 ~~~ JNIEXPORT jstring JNICALL Java_com_xmh_jni_JniUtil_getResult(JNIEnv *env,jobject obj,jstring value){ char * str; str=(*env)->GetStringUTFChars(env,value,NULL); sprintf(str,"%s-_-%s",str,str); return (*env)->NewStringUTF(env, str); } ~~~ 因此所創建的類完整類名為:com.xmh.jni.JniUtil。文件內容如下 ~~~ public class JniUtil { /*封裝native方法,先加載so文件后調用native方法*/ public String getResult(Context context,String value){ loadLibrary(context); return getResult(value); } /*加載so文件*/ private void loadLibrary(Context context) { try { //獲取文件輸入流 InputStream inStream = context.getAssets().open("armeabi/libJniLibDemo.so"); //獲取文件輸出流:目錄是/data/data/app包名/app_lib/(該目錄為app私有目錄,具有執行權限) File libsDir = context.getDir("libs", Context.MODE_PRIVATE); String soFilePath=libsDir.getAbsolutePath() + "/libJniLibDemo.so"; FileOutputStream outStream = new FileOutputStream(soFilePath); //使用兩個流復制文件 FileUtil.copyFile(inStream,outStream); //加載so文件 System.load(soFilePath); } catch (Exception e) { e.printStackTrace(); } } public native String getResult(String value); } ~~~ ### FileUtil類 該類用于文件復制 ~~~ public class FileUtil { public static void copyFile(InputStream inStream, FileOutputStream outStream) throws IOException { int bytesum = 0; int byteread = 0; byte[] buffer = new byte[1444]; int length; while ( (byteread = inStream.read(buffer)) != -1) { bytesum += byteread; //字節數 文件大小 System.out.println(bytesum); outStream.write(buffer, 0, byteread); } outStream.flush(); } } ~~~ ### 在需要的地方調用 ~~~ new JniUtil().getResult(this,"xmh"); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看