1. 程式人生 > >Android原始碼下各種Android.mk的編寫

Android原始碼下各種Android.mk的編寫

原文地址:https://blog.csdn.net/tkwxty/article/details/43341217

Android原始碼下各種Android.mk的編寫     快過年了公司不景氣,也麼有很多的事情要忙。正好趁著有時間,總結一下在Android原始碼下各種模組Android.mk的編寫!關於Android.mk詳細的語法描述和細節我這裡就不做過多的描述了,因為網上關於這方面的知識有很多,我這裡列舉出來的是幾個經常用到的模組編寫例項。希望對在Android原始碼下開發的Android新人們有一定的幫助。廢話不多說直接上例項。
     1.編寫生成普通的APK,該APK中沒有包含.so檔案也沒有引用第三方jar包 [cpp] view plaincopy
  1. # Copyright 2011 The Android Open Source Project  
  2.   
  3. LOCAL_PATH:= $(call my-dir)  
  4. include $(CLEAR_VARS)  
  5.   
  6. LOCAL_MODULE_TAGS := optional  
  7.   
  8. LOCAL_SRC_FILES := $(call all-java-files-under, src)  
  9.   
  10. LOCAL_PACKAGE_NAME := CoshipUpgrade  
  11.   
  12. LOCAL_CERTIFICATE := platform  
  13.   
  14. include $(BUILD_PACKAGE)  
  15.   
  16. # This finds and builds the test apk as well, so a single make does both.  
  17. include $(call all-makefiles-under,$(LOCAL_PATH))  

    2.編寫生成引用第三方jar包的APK [cpp] view plaincopy
  1. LOCAL_PATH:= $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3.   
  4. LOCAL_MODULE_TAGS := optional   
  5. LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)/apk  
  6.   
  7. LOCAL_SRC_FILES := $(call all-subdir-java-files)  
  8.   
  9. LOCAL_STATIC_JAVA_LIBRARIES := cling-core-1.0.5     \  
  10.                                cling-support-1.0.5  \  
  11.                                teleal-common-1.0.13 \  
  12.                                universal-image-loader \  
  13.                                core-zxing  
  14.                                  
  15.   
  16. LOCAL_PACKAGE_NAME := coshareservice  
  17. LOCAL_CERTIFICATE := platform  
  18. #LOCAL_JNI_SHARED_LIBRARIES := libmouse_cmd  
  19.   
  20. include $(BUILD_PACKAGE)  
  21.   
  22. MY_PATH := $(LOCAL_PATH)  
  23. LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := cling-core-1.0.5:libs/cling-core-1.0.5.jar \  
  24.                                         cling-support-1.0.5:libs/cling-support-1.0.5.jar \  
  25.                                         teleal-common-1.0.13:libs/teleal-common-1.0.13.jar \  
  26.                                         universal-image-loader:libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar \  
  27.                                         core-zxing:libs/core.jar  
  28.   
  29. include $(BUILD_MULTI_PREBUILT)  
  30. #include $(call all-makefiles-under,$(LOCAL_PATH))  


    3.預編譯只提供APK沒有提供原始碼,且不包含.so檔案      [cpp] view plaincopy
  1. LOCAL_PATH := $(call my-dir)  
  2.   
  3.   
  4. ###############################################  
  5. include $(CLEAR_VARS)  
  6. LOCAL_MODULE_TAGS := optional  
  7. LOCAL_MODULE := FlyUI_Wallpaper_mtk  
  8. LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)/apk  
  9. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk  
  10. LOCAL_MODULE_CLASS := APPS  
  11. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)  
  12. LOCAL_CERTIFICATE := platform  
  13. include $(BUILD_PREBUILT)  

    4.預編譯只提供APK沒有提供原始碼,且不包含.so檔案      [cpp] view plaincopy
  1. LOCAL_PATH:= $(call my-dir)  
  2.   
  3. ###############################################  
  4. include $(CLEAR_VARS)  
  5. LOCAL_MODULE_TAGS := optional  
  6. LOCAL_MODULE := YOUKU  
  7. LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)  
  8. LOCAL_SRC_FILES := $(LOCAL_MODULE).apk  
  9. LOCAL_MODULE_CLASS := APPS  
  10. LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)  
  11. LOCAL_CERTIFICATE := platform  
  12. include $(BUILD_PREBUILT)  
  13.   
  14. include $(CLEAR_VARS)  
  15. LOCAL_PREBUILT_LIBS := libhello-jni.so  
  16. LOCAL_MODULE := libhello-jni      
  17. LOCAL_MODULE_TAGS := optional  
  18. include $(BUILD_MULTI_PREBUILT)  
  19.   
  20.   
  21. include $(CLEAR_VARS)  
  22. LOCAL_PREBUILT_LIBS := libalgmsyoukutv.so  
  23. LOCAL_MODULE := libalgmsyoukutv  
  24. LOCAL_MODULE_TAGS := optional  
  25. include $(BUILD_MULTI_PREBUILT)  
  26.   
  27.   
  28. include $(CLEAR_VARS)  
  29. LOCAL_PREBUILT_LIBS := libluajavayoukutv.so  
  30. LOCAL_MODULE := libluajavayoukutv  
  31. LOCAL_MODULE_TAGS := optional  
  32. include $(BUILD_MULTI_PREBUILT)  

    4.編譯生成可執行檔案      [cpp] view plaincopy
  1. LOCAL_PATH:= $(call my-dir)  
  2.   
  3. include $(CLEAR_VARS)  
  4.   
  5. LOCAL_MODULE_TAGS := optional  
  6.   
  7. LOCAL_C_INCLUDES += \  
  8.      $(LOCAL_PATH)  
  9.        
  10. LOCAL_SRC_FILES:= \  
  11.         gpio-server.c  
  12.   
  13. LOCAL_SHARED_LIBRARIES := \  
  14.     libcurl \  
  15.     libcutils  
  16.   
  17. LOCAL_MODULE:= gpio-server  
  18.   
  19. include $(BUILD_EXECUTABLE)  
  20.   
  21. include $(call all-makefiles-under,$(LOCAL_PATH))  

     5.編譯生成共享庫,這裡生成的是libandroid_servers.so。由於涉及到的檔案太多這裡就不截圖了      [cpp] view plaincopy
  1. LOCAL_PATH:= $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3.   
  4. LOCAL_SRC_FILES:= \  
  5.     com_android_server_AlarmManagerService.cpp \  
  6.     com_android_server_BatteryService.cpp \  
  7.     com_android_server_InputApplicationHandle.cpp \  
  8.     com_android_server_InputManager.cpp \  
  9.     com_android_server_InputWindowHandle.cpp \  
  10.     com_android_server_LightsService.cpp \  
  11.     com_android_server_PowerManagerService.cpp \  
  12.     com_android_server_SystemServer.cpp \  
  13.     com_android_server_UsbDeviceManager.cpp \  
  14.     com_android_server_UsbHostManager.cpp \  
  15.     com_android_server_VibratorService.cpp \  
  16.     com_android_server_location_GpsLocationProvider.cpp \  
  17.     com_android_server_connectivity_Vpn.cpp \  
  18.     com_android_server_ConnectivityService.cpp \  
  19.     onload.cpp  
  20.   
  21. LOCAL_C_INCLUDES += \  
  22.     $(JNI_H_INCLUDE) \  
  23.     frameworks/base/services \  
  24.     frameworks/base/core/jni \  
  25.     external/skia/include/core  
  26.   
  27. LOCAL_SHARED_LIBRARIES := \  
  28.     libandroid_runtime \  
  29.     libcutils \  
  30.     libhardware \  
  31.     libhardware_legacy \  
  32.     libnativehelper \  
  33. 相關推薦

    Android原始碼各種Android.mk編寫

    原文地址:https://blog.csdn.net/tkwxty/article/details/43341217 Android原始碼下各種Android.mk的編寫     快過年了公司不景氣,也麼有很多的事情要忙。正好

    Android原始碼device目錄的分析

    一般原始碼的編譯前都會執行lunch命令,選擇編譯目標: source build/envsetup.sh lunch BUILD_BUILDTYPE 其中BUILDTYPE可以為user、userdebug、eng,排行越靠後,除錯資訊越多,許可權越大,

    android原始碼加入替換鈴聲檔案,及設定預設鈴聲

    系統鈴聲檔案的路徑在frameworks/base/data/sounds資料夾 有四個主要資料夾alarms ,notifications,ringtones,effects,分別對應系統的鬧鐘鈴聲,通知鈴聲,來電鈴聲,音效 如果需要新增鈴聲檔案,只需把鈴聲放入對應的資料

    android原始碼閱讀三》android原始碼編譯匯入android studio

    1、安裝 Java 輸入命令 java,報以下錯誤: Command 'java' not found, but can be installed with: sudo apt insta

    Android studioAndroid JNI呼叫以及動態連結庫.so的生成

    什麼是JNI: JNI(Java Native Interface)提供了Java和其他語言互動的一個介面,為什麼說是介面呢,因為如果你用想用C++實現一個簡單的兩個數字加減的方法並把值返回,那麼就需要首先在AndroidJniUtils.java(就是你寫的

    Android原始碼解析之Android專案構建過程

    平時開發過程中我們通過android studio編寫完成android專案之後直接點選 Run ‘app’就可以在build/outputs/apk生成可以在android裝置中安裝的apk檔案了,那麼整個android原始碼的構建過程是怎麼樣的呢? 我們可以根據Goog

    android原始碼】編譯android M原始碼、刷機,開啟原始碼學習的First Step

    一、概述 編譯android原始碼強烈建議在Linux作業系統下,最好在物理機器上安裝Linux作業系統,筆者使用發行版ubuntu 16.04作為PC系統,不建議在win上安裝虛擬機器vmvare解決,因為穩定性大打折扣,筆者曾經不知所以虛擬機器上的作業系統

    Android原始碼專案匯入android studio

    時間匆匆,我也畢業開始工作有兩個月的時間了。由於工作關係開始研究安卓原始碼相關的內容。剛開始準備採取單獨編譯某個系統app,然後替換對應system分割槽priv-app中的內容,而不用重複燒錄的方法。但是經過試驗這種方法沒有行得通。不知道哪位大神有沒有避免重複

    android原始碼中檢視android的版本

    想要檢視安卓原始碼版本,一般有兩個方法:1,如果是已經編譯過的,則會在原始碼下生成build.prop檔案,我們可以通過命令查詢檔案 find -name build.prop 然後再開啟檢視版本資訊

    原始碼環境中編譯Android studio專案時的mk指令碼編寫

    1、Main專案是主工程,下面有名為app的專案       CommonLib是庫工程,下面有名為lib的專案       Main專案會用到CommonLib庫。 2、原始碼環境中兩個專案是在同一個目錄下,平級的。Android.mk分別在各自的根目錄下。 3、參考

    【Android7.1.2原始碼解析系列】android init目錄Android.mk編譯檔案分析

    上一篇文章對於原始碼中的安卓編譯系統文件進行了翻譯,本文就以android當中的init模組作為例子,對其中的Android.mk檔案進行分析,讀者可以在閱讀本文的同時檢視我的譯文:http://blog.csdn.net/class_brick/article/detai

    ubuntu16.04編譯android-goldfish-3.4核心原始碼(android6.0.1系統原始碼)

    配置 筆者環境 系統: ubuntu 16.04 LTS 硬碟: 固態硬碟 筆者剛開始直接克隆的時候出現如下錯誤: error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexp

    Mac OS X安裝配置Android原始碼開發環境

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    安卓之Android.mk編寫

    generated sin efault print avi out ram https 個人 題記:編譯環境可以參考https://www.cnblogs.com/ywjfx/p/9960817.html 不管是寫C還是java,我想所有的程序員都經歷過HelloWorl

    Linux編譯Android原始碼問題彙總

    前言         本人最近在研究Android原始碼編譯,現將編譯過程中遇到問題彙總於此。 環境         系統:CentOS 7 x86_64         源    :中科大映象源(詳見這裡) 問題彙總 (1)Increase Java heap s

    教你如何在Mac系統編譯Android系統的原始碼

    今日科技快訊 “全國公廁雲平臺”11月19日上線試執行,彙總全國近33萬條公廁資訊,初步實現快速尋廁功能。11月19日是“世界廁所日”。據瞭解,該平臺由住房和城鄉建設部組織研發,群眾可隨時隨地

    Linux編譯VLC for Android原始碼總結

    由於專案需要,需要一個在android平臺能夠支援RTSP協議的播放器,由於之前沒有android平臺的經驗,所以找了著名的video LAN的VLC播放器,更令人驚奇的是這款播放器居然還是完全開源的。在此向那些開源軟體的作者和組織致以崇高的敬意,是你們的存在使得計算機軟

    Android原始碼(window如何獲取)

    概要 Android原始碼由Git進行管理,由於原始碼由眾多的模組組成,每個模組又可能依賴許多第三方庫,所以如果想要通過git連結一個個clone下來的話工作量將會非常大,所以Google用Python編寫了一個repo工具用來批量下載Android原始碼(但

    Android 5.1 如何內建APK在/system/priv-app目錄Android.mk

    Android4.4 增加的/system/priv-app 跟 原來的/system/app 有啥區別呢? /system/priv-app中包括Launcher,systemui, settingsprovider等,均是系統的核心應用,這些應用能使用系統級的許

    完整版linuxandroid原始碼下載、編譯、模擬器啟動執行

    一、環境說明: 1、VMware版本:8.0.3 build-703057 2、liunx系統:Ubuntu10.10 3、jdk:sun-java6-jdk 二、Ubuntu 10.10更新源列表       由於Ubuntu 10.10版本的源已經過期了,所以,需要