編輯:關於Android編程
利用源碼編譯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
Async-httpclient是一個用於Android應用程序開發的http訪問開源框架,開源在GitHub上,由於今天在GitHub上沒有看到下載地址,我這裡提供一個
在上一篇博文中,我主要講解了XML圖像資源中的圖層資源,在此圖像資源博文中我會給大家陸續講解XMl圖像資源的圖像狀態資源、圖像級別資源、淡入淡出資源、嵌入圖像資源、剪切圖
首先上效果圖,實現如下效果: @Override protected void onCreate(Bundle savedInstanceState) {
曾經檢測內存洩露的方式讓我們來看看在沒有LeakCanary之前,我們怎麼來檢測內存洩露1. Bug收集通過Bugly、友盟這樣的統計平台,統計Bug,了解OutOfMe