當前位置:首頁 » 操作系統 » systemui源碼

systemui源碼

發布時間: 2023-12-26 03:38:12

Ⅰ android 源碼 怎麼只編譯 systemui

Google提供的Android包含了原始Android的目標機代碼,主機編譯工具、模擬環境,下載的代碼包經過解壓後(這里是Android2.2的源碼包),源代碼的第一層目錄結構如下: -- Makefile -- bionic (bionic C庫) -- bootable (啟動引導相關代碼) -- build (存放系統編譯規則及generic等基礎開發包配置) -- cts (Android兼容性測試套件標准) -- dalvik (dalvik java虛擬機) -- development (應用程序開發相關) -- external (android使用的一些開源的模組) -- frameworks (核心框架——java及C++語言) -- hardware (主要保護硬解適配層HAL代碼) -- libcore -- ndk -- device -- out (編譯完成後的代碼輸出與此目錄) -- packages (應用程序包) -- prebuilt (x86和arm架構下預編譯的一些資源) -- sdk (sdk及模擬器) -- system (文件系統庫、應用及組件——c語言) `-- vendor (廠商定製代碼) bionic 目錄 -- libc (C庫) -- arch-arm (ARM架構,包含系統調用匯編實現) -- arch-x86 (x86架構,包含系統調用匯編實現) -- bionic (由C實現的功能,架構無關) -- docs (文檔) -- include (頭文件) -- inet -- kernel (Linux內核中的一些頭文件) -- netbsd (?netbsd系統相關,具體作用不明) -- private (?一些私有的頭文件) -- stdio (stdio實現) -- stdlib (stdlib實現) -- string (string函數實現) -- tools (幾個工具) -- tzcode (時區相關代碼) -- unistd (unistd實現) `-- zoneinfo (時區信息) -- libdl (libdl實現,dl是動態鏈接,提供訪問動態鏈接庫的功能) -- libm (libm數學庫的實現,) -- alpha (apaha架構) -- amd64 (amd64架構) -- arm (arm架構) -- bsdsrc (?bsd的源碼) -- i386 (i386架構) -- i387 (i387架構?) -- ia64 (ia64架構) -- include (頭文件) -- man (數學函數,後綴名為.3,一些為freeBSD的庫文件) -- powerpc (powerpc架構) -- sparc64 (sparc64架構) `-- src (源代碼) -- libstdc++ (libstdc++ C++實現庫) -- include (頭文件) `-- src (源碼) -- libthread_db (多線程程序的調試器庫) `-- include (頭文件) `-- linker (動態鏈接器) `-- arch (支持arm和x86兩種架構) bootable 目錄 -- bootloader (適合各種bootloader的通用代碼) `-- legacy (估計不能直接使用,可以參考) -- arch_armv6 (V6架構,幾個簡單的匯編文件) -- arch_msm7k (高通7k處理器架構的幾個基本驅動) -- include (通用頭文件和高通7k架構頭文件) -- libboot (啟動庫,都寫得很簡單) -- libc (一些常用的c函數) -- nandwrite (nandwirte函數實現) `-- usbloader (usbloader實現) -- diskinstaller (android鏡像打包器,x86可生產iso) `-- recovery (系統恢復相關) -- edify (升級腳本使用的edify腳本語言) -- etc (init.rc恢復腳本) -- minui (一個簡單的UI) -- minzip (一個簡單的壓縮工具) -- mttils (mtd工具) -- res (資源) `-- images (一些圖片) -- tools (工具) `-- ota (OTA Over The Air Updates升級工具) `-- updater (升級器) build目錄 -- core (核心編譯規則) -- history (歷史記錄) -- libs `-- host (主機端庫,有android 「cp」功能替換) -- target (目標機編譯對象) -- board (開發平台) -- emulator (模擬器) -- generic (通用) -- idea6410 (自己添加的) `-- sim (最簡單) `-- proct (開發平台對應的編譯規則) `-- security (密鑰相關) `-- tools (編譯中主機使用的工具及腳本) -- acp (Android "acp" Command) -- apicheck (api檢查工具) -- applypatch (補丁工具) -- apriori (預鏈接工具) -- atree (tree工具) -- bin2asm (bin轉換為asm工具) -- check_prereq (檢查編譯時間戳工具) -- dexpreopt (模擬器相關工具,具體功能不明) -- droiddoc (?作用不明,java語言,網上有人說和JDK5有關) -- fs_config (This program takes a list of files and directories) -- fs_get_stats (獲取文件系統狀態) -- iself (判斷是否ELF格式) -- isprelinked (判斷是否prelinked) -- kcm (按鍵相關) -- lsd (List symbol dependencies) -- releasetools (生成鏡像的工具及腳本) -- rgb2565 (rgb轉換為565) -- signapk (apk簽名工具) -- soslim (strip工具) `-- zipalign (zip archive alignment tool) dalvik目錄 dalvik虛擬機 . -- dalvikvm (main.c的目錄) -- dexmp (dex反匯編) -- dexlist (List all methods in all concrete classes in a DEX file.) -- dexopt (預驗證與優化) -- docs (文檔) -- dvz (和zygote相關的一個命令) -- dx (dx工具,將多個java轉換為dex) -- hit (?java語言寫成) -- libcore (核心庫) -- libcore-disabled (?禁用的庫) -- libdex (dex的庫) -- libnativehelper (Support functions for Android's class libraries) -- tests (測試代碼) -- tools (工具) `-- vm (虛擬機實現) development 目錄 (開發者需要的一些常式及工具) -- apps (一些核心應用程序) -- BluetoothDebug (藍牙調試程序) -- CustomLocale (自定義區域設置) -- Development (開發) -- Fallback (和語言相關的一個程序) -- FontLab (字型檔) -- GestureBuilder (手勢動作) -- NinePatchLab (?) -- OBJViewer (OBJ查看器) -- SdkSetup (SDK安裝器) -- SpareParts (高級設置) -- Term (遠程登錄) `-- launchperf (?) -- build (編譯腳本模板) -- cmds (有個monkey工具) -- data (配置數據) -- docs (文檔) -- host (主機端USB驅動等) -- ide (集成開發環境) -- ndk (本地開發套件——c語言開發套件) -- pdk (Plug Development Kit) -- samples (演示程序) -- AliasActivity () -- ApiDemos (API演示程序) -- BluetoothChat (藍牙聊天) -- BrowserPlugin (瀏覽器插件) -- BusinessCard (商業卡) -- Compass (指南針) -- ContactManager (聯系人管理器) -- CubeLiveWall** (動態壁紙的一個簡單常式) -- FixedGridLayout (像是布局) -- GlobalTime (全球時間) -- HelloActivity (Hello) -- Home (Home) -- JetBoy (jetBoy游戲) -- LunarLander (貌似又是一個游戲) -- MailSync (郵件同步) -- MultiResolution (多解析度) -- MySampleRss (RSS) -- NotePad (記事本) -- RSSReader (RSS閱讀器) -- SearchableDictionary (目錄搜索) -- **JNI (JNI常式) -- SkeletonApp (空殼APP) -- Snake (snake程序) -- SoftKeyboard (軟鍵盤) -- Wiktionary (?維基) `-- Wiktionary**(?維基常式) -- scripts (腳本) -- sdk (sdk配置) -- simulator (?模擬器) -- testrunner (?測試用) `-- tools (一些工具)

Ⅱ 反編譯出源代碼後,怎樣修改並且編譯回去

反編譯完成並且修改代碼完成後,輸入代碼:apktool d framework-res 即可完成回編譯

回編譯後的新的 apk在framework/dis 文件夾裡面

如果反編譯的是系統文件,比如,SystemUI.apk 那麼必須進行掛載框架,反編譯時,必須敲入一下命令:(然後再重復7-9步驟)
apktool if framework-res.apk
apktool if SystemUI.apk

對於三星手機(比如9100、9108/9100G),如果反編譯SystemUI.apk要敲入一下命令進行框架掛載apktool if framework-res.apk
apktool if twframework-res.apk
apktool if SystemUI.apk

回編譯的命令是 apktool b XXX (沒有後面的apk後綴)反編譯的命令是 apktool d xxx (有後面的apk)

Ⅲ Android車載應用開發與分析(2) - 集成第三方APK

在車載的應用開發過程中,會有一類特殊的需求,就是在預裝一些第三方app,常見的有網路地圖車載版、車載微信等等。這類app OEM 廠商都不會得到源碼,只能得到一個apk。

本篇文章基於Android R演示如何在aosp_car_x86_x64中預裝第三方apk。aosp_car_x86_x64我們在編譯AOSP選擇的build_type,如果你還不知道如何編譯AOSP可以參考這篇文章 Android車載應用開發與分析(1) - Android Automotive概述與編譯 。

各個OEM廠商預裝第三方APK的方式其實都有不同,本文只演示相對簡單的一種方式。

/system/priv-app
該路徑存放一些系統底層的應用,比如Setting,systemUI等。該目錄中的app擁有較高的系統許可權,而且如果要使用 android:protectionLevel=signatureOrSystem ,那麼該app必須放到priv-app目錄中去。

/system/app
該目錄中存放的系統app許可權相對較低,而且當擁有root許可權時,就有可能卸載掉這些app。

/vendor/app
該目錄存放vendor廠商的app

/oem/app
該目錄中存放oem特有的app。

/data/app
用戶安裝的第三方app。

PMS啟動的時候,也是按照上述順序逐個掃描解析這些目錄中的apk的

在 device/generic/car 新建文件夾,如 bilibili 將APK拷貝到 bilibili 文件夾下,創建Android.mk文件,內容如下:

將 bilibili 添加到 device/generic/car/aosp_car_x86_64.mk

重新編譯整個工程

熱點內容
電腦怎麼登遠程伺服器 發布:2024-11-29 12:32:20 瀏覽:124
先來先服務進程調度演算法 發布:2024-11-29 12:30:12 瀏覽:628
mysql存儲過程循環表中的數據 發布:2024-11-29 12:04:02 瀏覽:600
相機存儲器一般是什麼 發布:2024-11-29 11:59:51 瀏覽:295
傳奇伺服器源碼 發布:2024-11-29 11:43:15 瀏覽:820
新手機如何登錄微信密碼忘記了 發布:2024-11-29 11:34:34 瀏覽:544
筆記本配置低怎麼玩lol 發布:2024-11-29 11:34:32 瀏覽:461
如何在iphone上玩安卓號 發布:2024-11-29 11:24:21 瀏覽:754
伺服器店鋪怎麼取名 發布:2024-11-29 11:19:26 瀏覽:4
phpapache日誌 發布:2024-11-29 11:07:26 瀏覽:310