利用源碼編譯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事件分發(fā)機(jī)制深入刨析原理及源碼
Android?的事件分發(fā)機(jī)制大體可以分為三部分:事件生產(chǎn)、事件分發(fā)?、事件消費(fèi)。事件的生產(chǎn)是由用戶(hù)點(diǎn)擊屏幕產(chǎn)生,我們這次著重分析事件的分發(fā)和消費(fèi),因?yàn)槭录职l(fā)和處理聯(lián)系的過(guò)于緊密,這篇文章將把事件的分發(fā)和消費(fèi)放在一起分析2023-04-04Android原生態(tài)實(shí)現(xiàn)分享轉(zhuǎn)發(fā)功能實(shí)例
大家好,本篇文章主要講的是Android原生態(tài)實(shí)現(xiàn)分享轉(zhuǎn)發(fā)功能實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2021-12-12淺談Android硬件加速原理與實(shí)現(xiàn)簡(jiǎn)介
這篇文章主要介紹了淺談Android硬件加速原理與實(shí)現(xiàn)簡(jiǎn)介,本文嘗試從底層硬件原理,一直到上層代碼實(shí)現(xiàn),對(duì)硬件加速技術(shù)進(jìn)行簡(jiǎn)單介紹,感興趣的小伙伴們可以參考一下2018-07-07詳解Android Service 使用時(shí)的注意事項(xiàng)
這篇文章主要介紹了詳解Android Service 使用時(shí)的注意事項(xiàng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Android中RecyclerView布局代替GridView實(shí)現(xiàn)類(lèi)似支付寶的界面
RecyclerView比GridView來(lái)得更加強(qiáng)大,不僅是在分割線(xiàn)的繪制方面,在條目的編輯上也做得同樣出色,下面就來(lái)看一下Android中RecyclerView布局代替GridView實(shí)現(xiàn)類(lèi)似支付寶的界面的實(shí)例2016-06-06android 更改TextView中任意位置字體大小和顏色的方法
下面小編就為大家分享一篇android 更改TextView中任意位置字體大小和顏色的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android開(kāi)發(fā)Intent跳轉(zhuǎn)傳遞list集合實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Android開(kāi)發(fā)Intent跳轉(zhuǎn)傳遞list集合實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Android Studio無(wú)法執(zhí)行Java類(lèi)的main方法問(wèn)題及解決方法
這篇文章主要介紹了Android Studio無(wú)法執(zhí)行Java main方法的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03詳解Android:向服務(wù)器提供數(shù)據(jù)之get、post方式
本篇文章主要介紹了詳解Android:向服務(wù)器提供數(shù)據(jù)之get、post方式,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03android GridView多選效果的實(shí)例代碼
在使用 GridView的時(shí)候,有時(shí)需要多選上面顯示的類(lèi)容,比如批量刪除上面顯示的圖片,批量上傳圖片等。這個(gè)時(shí)候我們可以使用層疊圖來(lái)實(shí)現(xiàn),效果如下:2013-06-06