国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

從源碼編譯Android系統的Java類庫和JNI動態庫的方法

2020-04-11 10:44:56
字體:
來源:轉載
供稿:網友

利用源碼編譯Android系統Java類庫
1、編寫Java項目和Android.mk文件

  ├── Android.mk  └── src   └── com     └── lhw       └── framework         └── led           └── Led.java

Led.java文件

package com.lhw.framework.led;  /**  * LED操作庫  * @author Micky Liu  */ public class Led {      public boolean turnOn() {     return true;   }        public boolean turnOff() {     return true;   }   } 

 

Android.mk文件

LOCAL_PATH := $(call my-dir)  LOCAL_SRC_FILES   := $(call all-java-files-under, src) LOCAL_MODULE    := framework_led LOCAL_MODULE_TAGS  := framework_led  LOCAL_JAVA_LIBRARIES    := LOCAL_STATIC_JAVA_LIBRARIES :=  include $(BUILD_JAVA_LIBRARY) 

2、編譯

   mmm /home/administrator/workspace/android_test/framework_led

    編譯結果:

   Install: out/target/product/generic/system/framework/framework_led.jar    


利用源碼編譯Android系統JNI動態庫
1、代碼和Android.mk編寫

├── jni│  ├── Android.mk│  └── led.c


led.c

#include <jni.h> #include <stdio.h>  jboolean Java_com_lhw_led_Led_turnOn(JNIEnv *env, jclass thiz) {   return JNI_TRUE; }  jboolean Java_com_lhw_led_LED_trunOff(JNIEnv *env, jclass thiz) {   return JNI_TRUE; } 

注:方法名命名規則為:Java_包名_類名_方法名,可以用javah 命令根據java文件生成所需要的.h頭文件。當然更好的辦法是通過JNI_OnLoad和AndroidRuntime::registerNativeMethods實現動態注冊,這樣可以不用理會方法名規則。這里只是做個簡單的例子,在后面會用一個例子實現動態注冊。

Android.mk

LOCAL_PATH := $(call my-dir)  LOCAL_SRC_FILES := led.c LOCAL_MODULE  := led_jni LOCAL_MODULE_TAGS    := led_jni  LOCAL_PRELINK_MODULE  := false LOCAL_SHARED_LIBRARIES := libc  include $(BUILD_SHARED_LIBRARY) 

2、編譯

  mmm /home/administrator/workspace/android_test/jni

    編譯結果:

  Install: out/target/product/generic/system/lib/led_jni.so

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡南县| 泽库县| 林周县| 开化县| 崇左市| 聊城市| 南岸区| 梨树县| 龙州县| 香格里拉县| 惠来县| 海城市| 贵溪市| 金溪县| 巴东县| 九江县| 内江市| 光泽县| 余姚市| 大悟县| 兴化市| 沙坪坝区| 喀喇沁旗| 兴义市| 邢台县| 威海市| 文山县| 辽阳市| 浠水县| 奉新县| 石屏县| 慈利县| 昌吉市| 景宁| 宜兰县| 富平县| 桐城市| 化德县| 稻城县| 汉阴县| 涪陵区|