利用源碼編譯Android系統(tǒng)的APK和可執(zhí)行命令的方法
編譯Android系統(tǒng)APK
1、設(shè)置環(huán)境
export ANDROID_HOME=/home/administrator/soft/android export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product/generic
2、創(chuàng)建項(xiàng)目
android create project -t 1 -k com.lhw.led -a MainActivity -p ./led Avd id: 1,It's get by command "android list" Project Name: led Package: com.lhw.led Main Activity:MainActivity Project Path: ./
接下來(lái)就是自己編寫(xiě)Android程序了。
3、編寫(xiě)Android.mk
Android.mk需要放在項(xiàng)目根路徑下,即led下,內(nèi)容:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := led LOCAL_JAVA_LIBRARIES := LOCAL_STATIC_JAVA_LIBRARIES := include $(BUILD_PACKAGE)
4、編譯
在Android源碼目錄下執(zhí)行:
./build/envsetup.sh mmm /home/administrator/workspace/android_test/led/
執(zhí)行結(jié)果:
Install: out/target/product/generic/system/app/led.apk
編譯Android系統(tǒng)可執(zhí)行命令
Android系統(tǒng)允許開(kāi)發(fā)者,自己編寫(xiě)"ls"這樣的命令放到Android系統(tǒng)中。
1、編寫(xiě)C文件:mycmd.c
#include <stdio.h>
int main(int argc, char **argv)
{
printf("This is my command!\n");
return 0;
}
2、編寫(xiě)Android.mk文件
LOCAL_PATH := $(call my-dir) LOCAL_SRC_FILES := mycmd.c LOCAL_MODULE := mycmd LOCAL_MODULE_TAGS := mycmd LOCAL_SHARED_LIBRARIES := libc LOCAL_STATIC_LIBRARIES := include $(BUILD_EXECUTABLE)
3、編譯
mmm /home/administrator/workspace/android_test/mycmd/
編譯完成后信息:
Install: out/target/product/generic/system/bin/mycmd
- Android 如何修改APK的默認(rèn)名稱(chēng)
- Gradle編譯打包Android apk詳細(xì)介紹
- Android Apk去掉簽名以及重新簽名的方法
- Android實(shí)現(xiàn)用代碼簡(jiǎn)單安裝和卸載APK的方法
- Android獲取apk簽名指紋的md5值(防止重新被打包)的實(shí)現(xiàn)方法
- 為Android的apk應(yīng)用程序文件加殼以防止反編譯的教程
- Android開(kāi)發(fā)apk反編譯和二次打包教程
- Android應(yīng)用開(kāi)發(fā)中實(shí)現(xiàn)apk皮膚文件換膚的思路分析
- 給Android的APK程序簽名和重新簽名的方法
- Android應(yīng)用程序(APK)的編譯打包過(guò)程
相關(guān)文章
Android自定義View實(shí)現(xiàn)微信語(yǔ)音界面
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)微信語(yǔ)音界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android設(shè)計(jì)模式之Builder模式解析
這篇文章主要為大家詳細(xì)介紹了Android設(shè)計(jì)模式之Builder模式解析的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Android SQLite數(shù)據(jù)庫(kù)基本操作方法
本篇文章主要介紹了Android SQLite數(shù)據(jù)庫(kù)基本操作方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Android中使用ViewStub實(shí)現(xiàn)布局優(yōu)化
ViewStub是Android布局優(yōu)化中一個(gè)很不錯(cuò)的標(biāo)簽/控件,直接繼承自View。雖然Android開(kāi)發(fā)人員基本上都聽(tīng)說(shuō)過(guò),但是真正用的可能不多。今天我們就來(lái)詳細(xì)探討下ViewStub的使用2016-09-09
Android實(shí)現(xiàn)沉浸式狀態(tài)欄功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)沉浸式狀態(tài)欄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
Android實(shí)現(xiàn)自定義圓角對(duì)話框Dialog的示例代碼
項(xiàng)目中多處用到對(duì)話框,本篇文章主要介紹了Android實(shí)現(xiàn)圓角對(duì)話框Dialog的示例代碼,有興趣的可以了解一下。2017-03-03
Android自定義動(dòng)態(tài)壁紙開(kāi)發(fā)詳解
這篇文章主要為大家詳細(xì)介紹了Android自定義動(dòng)態(tài)壁紙開(kāi)發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Android實(shí)現(xiàn)仿網(wǎng)易今日頭條等自定義頻道listview 或者grideview等item上移到另一個(gè)view中
這篇文章主要介紹了Android實(shí)現(xiàn)仿網(wǎng)易今日頭條等自定義頻道listview 或者grideview等item上移到另一個(gè)view中 的相關(guān)資料,需要的朋友可以參考下2016-03-03

