Android原始碼下各種Android.mk的編寫
原文地址:https://blog.csdn.net/tkwxty/article/details/43341217
Android原始碼下各種Android.mk的編寫 快過年了公司不景氣,也麼有很多的事情要忙。正好趁著有時間,總結一下在Android原始碼下各種模組Android.mk的編寫!關於Android.mk詳細的語法描述和細節我這裡就不做過多的描述了,因為網上關於這方面的知識有很多,我這裡列舉出來的是幾個經常用到的模組編寫例項。希望對在Android原始碼下開發的Android新人們有一定的幫助。廢話不多說直接上例項。- # Copyright 2011 The Android Open Source Project
- LOCAL_PATH:= $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS := optional
- LOCAL_SRC_FILES := $(call all-java-files-under, src)
- LOCAL_PACKAGE_NAME := CoshipUpgrade
- LOCAL_CERTIFICATE := platform
- include $(BUILD_PACKAGE)
- # This finds and builds the test apk as well, so a single make does both.
- include $(call all-makefiles-under,$(LOCAL_PATH))
2.編寫生成引用第三方jar包的APK [cpp] view plaincopy
- LOCAL_PATH:= $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS := optional
- LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)/apk
- LOCAL_SRC_FILES := $(call all-subdir-java-files)
- LOCAL_STATIC_JAVA_LIBRARIES := cling-core-1.0.5 \
- cling-support-1.0.5 \
- teleal-common-1.0.13 \
- universal-image-loader \
- core-zxing
- LOCAL_PACKAGE_NAME := coshareservice
- LOCAL_CERTIFICATE := platform
- #LOCAL_JNI_SHARED_LIBRARIES := libmouse_cmd
- include $(BUILD_PACKAGE)
- MY_PATH := $(LOCAL_PATH)
- LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := cling-core-1.0.5:libs/cling-core-1.0.5.jar \
- cling-support-1.0.5:libs/cling-support-1.0.5.jar \
- teleal-common-1.0.13:libs/teleal-common-1.0.13.jar \
- universal-image-loader:libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar \
- core-zxing:libs/core.jar
- include $(BUILD_MULTI_PREBUILT)
- #include $(call all-makefiles-under,$(LOCAL_PATH))
3.預編譯只提供APK沒有提供原始碼,且不包含.so檔案 [cpp] view plaincopy
- LOCAL_PATH := $(call my-dir)
- ###############################################
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS := optional
- LOCAL_MODULE := FlyUI_Wallpaper_mtk
- LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)/apk
- LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
- LOCAL_MODULE_CLASS := APPS
- LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
- LOCAL_CERTIFICATE := platform
- include $(BUILD_PREBUILT)
4.預編譯只提供APK沒有提供原始碼,且不包含.so檔案 [cpp] view plaincopy
- LOCAL_PATH:= $(call my-dir)
- ###############################################
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS := optional
- LOCAL_MODULE := YOUKU
- LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
- LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
- LOCAL_MODULE_CLASS := APPS
- LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
- LOCAL_CERTIFICATE := platform
- include $(BUILD_PREBUILT)
- include $(CLEAR_VARS)
- LOCAL_PREBUILT_LIBS := libhello-jni.so
- LOCAL_MODULE := libhello-jni
- LOCAL_MODULE_TAGS := optional
- include $(BUILD_MULTI_PREBUILT)
- include $(CLEAR_VARS)
- LOCAL_PREBUILT_LIBS := libalgmsyoukutv.so
- LOCAL_MODULE := libalgmsyoukutv
- LOCAL_MODULE_TAGS := optional
- include $(BUILD_MULTI_PREBUILT)
- include $(CLEAR_VARS)
- LOCAL_PREBUILT_LIBS := libluajavayoukutv.so
- LOCAL_MODULE := libluajavayoukutv
- LOCAL_MODULE_TAGS := optional
- include $(BUILD_MULTI_PREBUILT)
4.編譯生成可執行檔案 [cpp] view plaincopy
- LOCAL_PATH:= $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE_TAGS := optional
- LOCAL_C_INCLUDES += \
- $(LOCAL_PATH)
- LOCAL_SRC_FILES:= \
- gpio-server.c
- LOCAL_SHARED_LIBRARIES := \
- libcurl \
- libcutils
- LOCAL_MODULE:= gpio-server
- include $(BUILD_EXECUTABLE)
- include $(call all-makefiles-under,$(LOCAL_PATH))
5.編譯生成共享庫,這裡生成的是libandroid_servers.so。由於涉及到的檔案太多這裡就不截圖了 [cpp] view plaincopy
- LOCAL_PATH:= $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_SRC_FILES:= \
- com_android_server_AlarmManagerService.cpp \
- com_android_server_BatteryService.cpp \
- com_android_server_InputApplicationHandle.cpp \
- com_android_server_InputManager.cpp \
- com_android_server_InputWindowHandle.cpp \
- com_android_server_LightsService.cpp \
- com_android_server_PowerManagerService.cpp \
- com_android_server_SystemServer.cpp \
- com_android_server_UsbDeviceManager.cpp \
- com_android_server_UsbHostManager.cpp \
- com_android_server_VibratorService.cpp \
- com_android_server_location_GpsLocationProvider.cpp \
- com_android_server_connectivity_Vpn.cpp \
- com_android_server_ConnectivityService.cpp \
- onload.cpp
- LOCAL_C_INCLUDES += \
- $(JNI_H_INCLUDE) \
- frameworks/base/services \
- frameworks/base/core/jni \
- external/skia/include/core
- LOCAL_SHARED_LIBRARIES := \
- libandroid_runtime \
- libcutils \
- libhardware \
- libhardware_legacy \
- libnativehelper \
-
相關推薦
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 studio下的Android 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等,均是系統的核心應用,這些應用能使用系統級的許
完整版linux下android原始碼下載、編譯、模擬器啟動執行
一、環境說明: 1、VMware版本:8.0.3 build-703057 2、liunx系統:Ubuntu10.10 3、jdk:sun-java6-jdk 二、Ubuntu 10.10更新源列表 由於Ubuntu 10.10版本的源已經過期了,所以,需要