欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

從源碼編譯Android系統(tǒng)的Java類庫和JNI動(dòng)態(tài)庫的方法

 更新時(shí)間:2016年02月24日 16:17:28   作者:喝醉的毛毛蟲  
這篇文章主要介紹了從源碼編譯Android系統(tǒng)的Java類庫和JNI動(dòng)態(tài)庫的方法,例子基于Linux系統(tǒng)環(huán)境下來講,需要的朋友可以參考下

利用源碼編譯Android系統(tǒng)Java類庫
1、編寫Java項(xiàng)目和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

    編譯結(jié)果:

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


利用源碼編譯Android系統(tǒng)JNI動(dòng)態(tài)庫
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; 
} 

注:方法名命名規(guī)則為:Java_包名_類名_方法名,可以用javah 命令根據(jù)java文件生成所需要的.h頭文件。當(dāng)然更好的辦法是通過JNI_OnLoad和AndroidRuntime::registerNativeMethods實(shí)現(xiàn)動(dòng)態(tài)注冊,這樣可以不用理會(huì)方法名規(guī)則。這里只是做個(gè)簡單的例子,在后面會(huì)用一個(gè)例子實(shí)現(xiàn)動(dòng)態(tài)注冊。

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

    編譯結(jié)果:

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

相關(guān)文章

最新評(píng)論