国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
在Android源碼里編譯apk
有時(shí)候不得已需要在Android源碼里編譯應(yīng)用。譬如說用到了Andorid的隱藏類,譬如說要與系統(tǒng)一起起來的system權(quán)限apk,譬如說用eclipse編譯時(shí),明明是正確的代碼卻報(bào)錯(cuò)時(shí)。就不得不用到在源碼里編譯了。至于說有apk了,要成為Android預(yù)裝的應(yīng)用,那倒是簡單,只需要將apk放到out/system/app/目錄下重新打包image文件即可,不在本文討論范疇。

  我用到這個(gè)的原因就是上述的第三點(diǎn),完全不知道這個(gè)eclipse發(fā)了什么神經(jīng),明明是正確代碼卻總是報(bào)錯(cuò)。于是乎將其放在Android源碼里,只留下res和src目錄,以及AndroidManifest.xml文件。由于這個(gè)工程還用到了兩個(gè)jar文件,所以也將它們拷貝過來。然后編輯Android.mk文件(這里主要就是講這個(gè)mk文件如何編寫),就可以看到目錄下是如此的:

Analytics_Android_SDK_2.0.jar  AndroidManifest.xml  Android.mk  jcifs-1.3.15.jar  res  src

那么,如何編輯Android.mk呢?首先看我這個(gè)Android.mk的寫法:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional#debug

LOCAL_STATIC_JAVA_LIBRARIES := libanalytics \
                               libjcifs

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_SDK_VERSION := current

LOCAL_PACKAGE_NAME := FileExpert

include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libanalytics:Analytics_Android_SDK_2.0.jar \
                                        libjcifs:jcifs-1.3.15.jar
include $(BUILD_MULTI_PREBUILT)

  解釋一下,其中LOCAL_MODULE_TAGS := optional是說可以配置的,要在core.mk配置,如果你是想將其預(yù)裝到系統(tǒng)里,最好去配置一下,或者直接:=debug好了。如果不是的話,只是想單獨(dú)編譯一下這個(gè)apk,那隨你怎么寫了,我這里寫的就是optional,并且沒有在其它build目錄下的mk文件里添加內(nèi)容,因?yàn)槲抑恍枰幾g這一個(gè)apk。

  LOCAL_STATIC_JAVA_LIBRARIES是這個(gè)apk也依賴的庫。在eclipse里都好說,只要改一下build path就可以了。但是在Android源碼里就沒有這么好了,得自己加上去。這里,我用到的兩個(gè)jar庫都是Analytics_Android_SDK_2.0.jar和jcifs-1.3.15.jar,這里兩個(gè)libanalytics和libjcifs的名字隨你怎么取好了,但是關(guān)鍵取好之后要記得,還用得著它們呢??催@個(gè)mk文件的倒數(shù)兩三行LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libanalytics:Analytics_Android_SDK_2.0.jar libjcifs:jcifs-1.3.15.jar,這里就指定了這兩個(gè)庫跟剛才兩個(gè)名字的關(guān)聯(lián)關(guān)系了。后面的include $(BUILD_MULTI_PREBUILT)可別忘記了,這里就跟另一個(gè)文件有關(guān)了。

  在build/core/user_tags.mk里,這個(gè)build目錄是android源碼總目錄下面的build目錄,幾乎所有的編譯規(guī)則都在這個(gè)目錄下。修改user_tags.mk文件里的GRANDFATHERED_USER_MODULES變量,在末尾處添加上面寫的兩個(gè)lib,我這里的這個(gè)文件原來的末尾是zipalign,所以添加兩個(gè)之后就是這樣的:

zipalign \
libanalytics \
libjcifs

  這個(gè)就對應(yīng)著上面寫的那個(gè)名字,所以說上面寫過的東西都要記得。Android.mk文嘉的其它部分就按上面的寫好了,只是LOCAL_PACKAGE_NAME := FileExpert要換成你想要的,按照這個(gè)編譯出來,最后就是FileExpert.apk文件了。

  至此,Android.mk文件編輯好,回到Android源碼總目錄,叫Android-src好了。在Android-src目錄下,執(zhí)行命令:

. build/envsetup.sh

  執(zhí)行這個(gè)命令主要是設(shè)置一下當(dāng)前shell的環(huán)境變量。然后進(jìn)入到你apk的源碼目錄,如我這里放到Android-src/packages/apps/FileExpert,所以我就到這個(gè)目錄下執(zhí)行這個(gè)命令

mm TARGET_PRODUCT=product_name

  這個(gè)TARGET_PRODUCT=product_name隨你了,如果你原來編譯系統(tǒng)直接用的是make命令,那么這個(gè)TARGET_PRODUCT=product_name也可以省下了,直接執(zhí)行mm就可以了。

  編譯完后,你就可以去Android-src/out/target/product/product_name/system/app目錄下找你的apk文件了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Eclipse編譯帶so庫或jar包的android應(yīng)用
android開發(fā) so文件打包到apk中的方法
理解Android Build 系統(tǒng)
windows下eclipse中,涉及源碼編譯的apk開發(fā)——使用系統(tǒng)簽名機(jī)制
Android APK反編譯就這么簡單 詳解(附圖)
android apk 反編譯,android編譯錯(cuò)誤解決方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服