當前位置:首頁 » 編程軟體 » 安卓ui編譯

安卓ui編譯

發布時間: 2023-08-28 01:22:09

Ⅰ 求助,安卓5.1反編譯systemui.apk失敗

第一:要在你的PC上建立java的環境,才能執行編譯工作。具體方法我這個就不說了,你網路或者Google下就知道了,很簡單的。

第二:下載必要的工具。Apktool工具。
下載後解壓(有三個文件aapt.exe,apktool.bat,apktool.jar),為了方便。將解壓出來的文件放在CDM模式(win+R)默認的目錄下。

比如,我的是Windows732位我的CDM模式默認目錄是C:\USER\用戶名。

第三:如果你是要編譯系統文件的話,請將你要修改的rom里的framework-res.apk(暫時叫做依賴包)用CMD模式「安裝」下。
這樣編譯才不會出錯。我一開始就是在這里糾結了很久。呵呵

安裝方法:把依賴包放在剛才放apktool的目錄下。(你也可以用指定目錄的方法安裝)

cmd模式執行apktoolifframework-res.apk這個是安裝framework-res.apk

第四:准備工作都做好了,現在就可以反編譯和編譯了。
將你要反編譯的apk放在apktool的目錄下。(你也可以用指定目錄)

cmd模式執行apktooldXXXX.apk這個是Decode也就是反編譯

比如反編譯SystemUI就執行apktooldSystemUI.apk就可以了(會在當前的目錄下生成SystemUI的文件夾,修改就是在這個文件夾里進行)

SystemUI.apk等特殊APK文件的反編譯和編譯技巧
cmd模式執行apktoolbXXXX這個是build也就是編譯回去
比如編譯SystemUI就執行apktoolbSystemUI就可以了(會在rosie的文件夾中生成一個叫dist的文件夾,編譯回去的apk就是此文件夾中)

注意:第三步很重要,很多人不成功就是因為沒做第三步。

Ⅱ 安卓APP的主要開發原理以及其主要過程是什麼

開發原理:

Android應用程序是用Java語言編寫的。編譯過後的位元組碼,以及應用程序要求的其他數據和資源文件,通過aapt工具被綁定在一起,稱為 Android包,這是一個帶.apk後綴的檔案文件。這個文件也是用戶下載到他們設備上的文件。所有的代碼在一個單一的.apk文件中,組成一個「應用程序」。

主要過程:

1、需求分析:

大部分創業型項目在這個階段只是一些比較抽象的想法。有一份相對完善的需求文檔,不僅有助於創業者自身對項目的理解和周全性分析,如果項目是交由設計公司去完成的話,也更有利於對方准確把握項目的定位和商業模式,以便給出專業的建議和解決方案。

2、原型設計

接下來會根據上面提到的具體需求文檔,項目經理進行會進行原型圖的設計。

3、UI設計

原型圖經過反復推敲修正後,UI 設計師會進行UI界面相關的配色設計、功能具象化處理、交互設計、以及各種機型、系統的適配。UI 設計師經過多次與項目經理溝通修改後,最終的到定稿的高保真設計圖。

4、開發

經過以上幾個過程之後,會正式進入到開發階段。

5、測試調試

APP 功能開發完成之後,測試人員會對整項目進行系統性測試。這個環節會調動起項目組內所有人相關人員。而測試這個環節的重要性不亞於前期功能的規劃,如果團隊沒有經過專業系統性訓練的測試人員,很可能會導致項目出現與設計初衷存在落差,以及遺漏下一些邏輯上的坑。

6、發布app

經過至少兩輪的內部測試以及小范圍外測(或者完成滿足測試要求的周期)後,會進行最終版本的上架。

(2)安卓ui編譯擴展閱讀

APP開發工具

1、MOTODEV Studio for Android

MOTODEV Studio for Android,這是基於Android的開發環境,為開發者們提供新的MOTODEV App Accelerator Program使他們可以開發出更適合摩托羅拉Android手機的應用程序。

2、J2ME開發插件 Mobile Tools for Java

Mobile Tools for Java (MTJ) 是Nokia公司開發的一款 Eclipse插件,用於支持 Java 手機應用程序開發。其前身就是大名鼎鼎的 EclipseME。

3、apk文件修改工具 Root Tools

RootTools是一個新的工具軟體,Android開發者可以在這一工具軟體的支持下,對.apk格式的文件進行再次修改,讓程序表現更加出色,滿足用戶的需求。Root Tools裡面自帶有很多工具,比如BusyBox,它裡面集成壓縮了很多linux的工具和命令,這樣軟體開發者在對....

4、IDEA的Android開發插件 idea-android

idea-android 是在 IDEA 集成開發環境中開發 Android 應用程序的插件。

參考資料

網路-app開發

Ⅲ Android APK編譯流程

apk 是Android Package的簡寫, 在平時的開發過程中,通過點擊 Run app 按鈕 或者 在命令行中輸入

這樣Android Studio就會啟動構建流程,最終輸出一個我們想要的APK。

直達官網介紹

對於小白來說,上面一張圖已經可以解釋apk的構建過程了,不過對於Andoid開發者而言還需要了解一些更詳細的構建過程。

詳細的對應步驟 和 使用工具如下:

資源文件(res文件夾下的文件)通過 AAPT(Android Asset Packaging Tool)打包生成R.java類(資源索引表)、.arsc資源文件 和res文件。

resources.arsc 是一個App的資源索引表,通過R.java 文件 和 resources.arsc 可以定位到資源的內存地址,resources.arsc文件的作用是通過一樣的ID,根據不同的配置索引到最佳的資源顯示在UI中。

AIDL (Android Interface Definition Language), 是Android介面定義語言,是Android提供的IPC (Inter Process Communication,進程間通信)的一種獨特實現。
如果有aidl文件,這個階段會生成對應的Java介面文件。

R.java文件、工程源碼文件、aidl.java文件, 在這一步通過javac生成.class文件。

源碼.class文件和第三方jar或者library通過dx工具打包成dex文件

Android系統的Dalvik虛擬機的可執行文件為DEX格式,所以這里會將上一步中生成的.class文件 和 引用的第三方jar等過程中的.class 一起通過dx工具打包成dex文件

apkbuilder工具會將所有沒有編譯的資源、.arsc資源、.dex文件打包到一個完成apk文件中

tips:

apksigner工具會對未簽名的apk驗證簽名。得到一個簽名後的apk(signed.apk)

apksigner 是google 退出的V2簽名方式
Jarsigner 是之前一直使用的V1簽名方式

可以通過在命令行中輸入apksigner --help來獲取詳情信息,如果沒有特殊需求,使用下面命令即可完成簽名

release mode 下使用 aipalign進行align,即對簽名後的apk進行對齊處理

所謂對齊,主要過程是將APK包中所有的資源文件距離文件起始偏移為4位元組整數倍,這樣通過內存映射訪問apk文件時的速度會更快。對齊的作用主要是為了減少運行時內存的使用。

zipalign是一個android平台上整理APK文件的工具,它對apk中未壓縮的數據進行4位元組對齊,對齊後就可以使用mmap函數讀取文件,可以像讀取內存一樣對普通文件進行操作。如果沒有4位元組對齊,就必須顯式的讀取,這樣比較緩慢並且會耗費額外的內存。

參考文章:
Android-Studio配置構建
淺談Android打包流程
apk打包流程

END!

Ⅳ 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 (一些工具)

Ⅳ apk改之理 反編譯安卓系統ui 編譯失敗 怎麼辦

反編譯SystemUI.apk需要載入Framework-res.apk框架才能反編譯

求採納

Ⅵ 反編譯Android APK的具體步驟是怎樣的

  • 原料

    • 一個需要反編譯的APK

  • 步驟

    1. 准備好一個需要反編譯的apk



Ⅶ 自己可以編譯安卓源碼嗎

用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:

sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」

其中[email protected]為你自己的郵箱.

簡要說明

android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.

源碼下載

由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)

repo工具下載及安裝

通過執行以下命令實現repo工具的下載和安裝

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:

我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:


這里寫圖片描述

執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.

錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.

    結束吧

    到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    熱點內容
    編程正實數 發布:2024-11-20 17:22:12 瀏覽:241
    電腦經常彈腳本錯誤 發布:2024-11-20 17:21:03 瀏覽:506
    雲伺服器購買人怎麼查 發布:2024-11-20 17:09:36 瀏覽:399
    目前安卓手機用什麼軟體 發布:2024-11-20 17:08:56 瀏覽:908
    12個符號組成密碼多少個 發布:2024-11-20 17:08:56 瀏覽:296
    災難資料庫 發布:2024-11-20 17:08:55 瀏覽:210
    釣魚發燒友腳本機價格 發布:2024-11-20 16:59:41 瀏覽:122
    什麼是網頁伺服器 發布:2024-11-20 16:59:38 瀏覽:63
    訪問黎姿 發布:2024-11-20 16:50:57 瀏覽:877
    砸迷你電風扇解壓視頻 發布:2024-11-20 16:44:40 瀏覽:620