逆向開發環境準備

JDK安裝

AndroidStudio安裝

? ? ? ? 默認sdk路徑

????????????????C:\Users\Administrator\AppData\Local\Android\Sdk

? ? ? ? 將platform-tools所在的目錄添加到path

????????????????C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools

? ? ? ? ? ? ? ? 主要目的是使用該目錄下的adb等命令

????????將tools所在的目錄添加到path

? ? ? ? ? ???????C:\Users\Administrator\AppData\Local\Android\Sdk\tools

? ? ? ? NDK根目錄添加到path

? ? ? ? ? ? ? ? 檢驗是否添加成功

? ? ? ? ? ? ? ? ? ? ? ? ndk-build

MT管理器

? ? ? ? 功能:

? ? ? ? ? ? ? ? 查看Android系統目錄結構

? ? ? ? ? ? ? ? 查看apk的加固方式,以及簽名版本等信息

????????????????????????

Android killer

? ? ? ? 替換apktool

? ? ? ? 案例:

? ? ? ? ? ? ? ? 更改應用的名稱和icon

? ? ? ? ? ? ? ? ? ? ? ? killer內置的文本搜索工具不好用,對于名稱和icon的更改,可自動化

? ? ? ? ? ? ? ? ? ? ? ? 自動化icon步驟

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.指定AndroidManifest.xml的路徑

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.更改icon的名稱

????????????????????????????????????????? <application ?android:icon="@drawable/jrlogo"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.將icon所對應的圖片添加到如下目錄

????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? 自動化名稱步驟

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.確定AndroidManifest.xml中名字對應的字符串叫什么

???????????????????????????????????????<application??android:label="@string/tudou_app_name"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.在values/strings.xml中搜索相應的字符串,找到后將其替換

????????????????????????????????????????<string name="tudou_app_name">土豆視頻1</string>

? ? ? ? ? ? ? ? 去除開屏廣告界面

? ? ? ? ? ? ? ? ? ? ? ? 1.用adb判斷目標app啟動時,開屏廣告界面所對應的Activity名稱

? ? ? ? ? ? ? ? ? ? ? ? 2.在AndroidManifest.xml中將該Activity的launcher屬性去除

????????????????????????

? ? ? ? ? ? ? ? ? ?

APK的目錄結構

????????

APK的打包流程

????????

apk的安裝流程

????????

虛擬機

? ? ? ? 有三種虛擬機,分別為:java虛擬機,dalvik虛擬機,art虛擬機

????????

odex和aot的區別

ODEX(Optimized DEX)

  • 定義:ODEX是優化過的DEX文件,即將APK中的classes.dex文件通過dex優化過程生成的優化文件。DEX文件是Android應用程序的編譯產物,包含了應用程序的可執行代碼。
  • 用途:ODEX文件用于加快軟件的啟動速度,減少對RAM的占用。在Android 5.0之前,APK安裝時會進行DEX文件的驗證和優化,生成ODEX文件。運行APK時,直接加載ODEX文件,避免了重復驗證和優化,從而提高了響應速度。

OAT(Optimized Android Runtime)

  • 定義:OAT是ART(Android Runtime)虛擬機運行的文件,是ELF格式的二進制文件,包含了DEX文件和編譯出的本地機器指令。
  • 用途:從Android 5.0開始,系統引入了ART運行時環境,取代了之前的Dalvik虛擬機。ART在安裝應用時會進行預編譯,將DEX文件轉換成OAT文件,這些文件包含了編譯后的機器碼,因此可以直接由處理器執行,無需在應用運行時再進行即時編譯(JIT),從而提高了應用的運行效率。

二、生成與存儲

ODEX

  • 生成:在Android 5.0之前的版本中,APK安裝時通過dexopt工具生成ODEX文件。dexopt會對DEX文件進行優化,并生成包含優化結果的ODEX文件。
  • 存儲:ODEX文件通常存儲在/data/dalvik-cache目錄下,與APK文件分開存儲。

OAT

  • 生成:在Android 5.0及以后的版本中,APK安裝時通過dex2oat工具將DEX文件編譯成OAT文件。dex2oat負責將DEX字節碼轉換成特定于處理器的機器碼。
  • 存儲:OAT文件同樣存儲在/data/dalvik-cache目錄下,但格式和內容與ODEX文件不同。

三、文件格式與性能

文件格式

  • ODEX:雖然ODEX文件是優化過的DEX文件,但其本質上仍然是DEX格式的一種變體。它包含了經過優化的DEX代碼和一些額外的元數據。
  • OAT:OAT文件是ELF格式的二進制文件,包含了DEX代碼和編譯后的本地機器指令。與ODEX相比,OAT文件的結構更加復雜,但執行效率更高。

性能

  • ODEX:雖然ODEX文件加快了軟件的啟動速度,但在運行時仍需要JIT編譯器將DEX字節碼轉換成機器碼才能執行。
  • OAT:OAT文件包含了編譯后的機器碼,因此可以直接由處理器執行,無需JIT編譯過程。這使得應用的運行效率更高,響應速度更快。

綜上所述,ODEX和OAT在Android系統中扮演著不同的角色,它們之間的區別主要體現在定義與用途、生成與存儲以及文件格式與性能等方面。隨著Android系統的發展,ART運行時環境和OAT文件逐漸成為主流趨勢。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38307.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38307.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38307.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1-5題查詢 - 高頻 SQL 50 題基礎版

目錄 1. 相關知識點2. 例題2.1.可回收且低脂的產品2.2.尋找用戶推薦人2.3.大的國家2.4. 文章瀏覽 I2.5. 無效的推文 1. 相關知識點 sql判斷&#xff0c;不包含null&#xff0c;判斷不出來distinct是通過查詢的結果來去除重復記錄ASC升序計算字符長度 CHAR_LENGTH() 或 LENGTH(…

sqlmap注入詳解

免責聲明:本文僅做分享... 目錄 1.介紹 2.特點 3.下載 4.幫助文檔 5.常見命令 指定目標 請求 HTTP cookie頭 HTTP User-Agent頭 HTTP協議的證書認證 HTTP(S)代理 HTTP請求延遲 設定超時時間 設定重試超時 設定隨機改變的參數值 利用正則過濾目標網址 避免過多的…

Python-爬蟲案例

Python-爬蟲案例 代碼代碼 代碼 import requests import json import threading from queue import Queue import timeclass HeiMaTouTiao:def __init__(self):self.headers {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) ""AppleWebKit/53…

前端筆記-day11

文章目錄 01-空間-平移02-視距03-空間旋轉Z軸04-空間旋轉X軸05-空間旋轉Y軸06-立體呈現07-案例-3D導航08-空間縮放10-動畫實現步驟11-animation復合屬性12-animation拆分寫法13-案例-走馬燈14-案例-精靈動畫15-多組動畫16-全民出游全民出游.htmlindex.css 01-空間-平移 <!D…

基于Spring Boot的在線醫療咨詢平臺的設計與實現【附源碼】

基于Spring Boot的在線醫療咨詢平臺的設計與實現 Design and implementation of the computer hardware mall based on Spring Boot Candidate&#xff1a; Supervisor&#xff1a; April 20th, 2024 學位論文原創性聲明 本人鄭重聲明&#xff1a;所呈交的論文是本人在導師…

初中英語優秀作文分析-006How to Deal with the Exam Stress-如何應對考試壓力

更多資源請關注紐扣編程微信公眾號 記憶樹 1 We students are very busy with schoolwork and in the face of many exams every school day. 翻譯 我們學生忙于功課&#xff0c;每個上學日都面臨許多考試。 簡化記憶 考試 句子結構 We students 主語 我們學生&#xf…

Vite: 高階特性 Pure ESM

概述 ESM 已經逐步得到各大瀏覽器廠商以及 Node.js 的原生支持&#xff0c;正在成為主流前端模塊化方案。 而 Vite 本身就是借助瀏覽器原生的 ESM 解析能力( type“module” )實現了開發階段的 no-bundle &#xff0c;即不用打包也可以構建 Web 應用。不過我們對于原生 ESM 的…

綜合評價類模型——突變級數法

含義 首先&#xff1a;對評價目標進行多層次矛盾分解其次&#xff1a;利用突變理論和模糊數學相結合產生突變模糊隸屬函數再次&#xff1a;由歸一公式進行綜合量化運算最終&#xff1a;歸一為一個參數&#xff0c;即求出總的隸屬函數&#xff0c;從而對評價目標進行排序分析特點…

【linux/shell實戰案例】shell中變量的使用

目錄 一.linux變量聲明及定義 二.linux變量使用方法 三.linux變量使用花括號${name}和雙引號“$name”的區別 四.linux變量使用單引號$name和雙引號“$name”的區別 五.linux變量中使用命令 一.linux變量聲明及定義 #!/bin/bash namezhaodabao 等號兩邊不能有空格變量名…

ES6面試題——箭頭函數和普通函數有什么區別

1. this指向問題 <script> let obj {a: function () {console.log(this); // 打印出&#xff1a;{a: ?, b: ?}},b: () > {console.log(this); // 打印出Window {window: Window, self: Window,...}}, }; obj.a(); obj.b(); </script> 箭頭函數中的this是在箭…

成都市水資源公報(2000-2022年)

數據年限&#xff1a;2000-2022年&#xff0c;無2009年 數據格式&#xff1a;pdf、word、jpg 數據內容&#xff1a;降水量、地表水資源量、地下水資源量、水資源總量、蓄水狀況、平原區淺層地下水動態、水資源情況分析、供水量、用水量、污水處理、洪澇干旱等

類似李跳跳的軟件有什么,強烈推薦所有安卓手機安裝!!!

今天阿星分享一款讓安卓手機更順滑的神器——智慧島。你問我李跳跳&#xff1f;由于大家都知道的原因&#xff0c;那是個曾經讓廣告無處遁形的神兵利器&#xff0c;可惜現在它已經退休了。不過別擔心&#xff0c;智慧島接過了接力棒&#xff0c;繼續為我們的安卓體驗保駕護航。…

Raccon:更好防側信道攻擊的后量子簽名方案

1. 引言 安全社區已經開發出了一些出色的加密算法&#xff0c;這些算法非常安全&#xff0c;但最終&#xff0c;所有的數據都會被存儲在硅和金屬中&#xff0c;而入侵者越來越多地會在那里放置監視器來破解密鑰。 破解加密密鑰通常涉及暴力破解方法或利用實施過程中的缺陷。然…

2029年AI服務器出貨量將突破450萬臺,AI推理服務器即將爆發式增長

在2020年&#xff0c;新冠疫情與遠程辦公模式的興起推動了所有類型服務器的出貨量達到峰值&#xff0c;隨后幾年里&#xff0c;除了AI服務器之外的所有類別都回歸到了正常水平。 根據Omdia的研究數據&#xff0c;AI服務器的出貨量在2020年急劇上升&#xff0c;并且至今未顯示出…

瀏覽器中如何獲取用戶網絡狀態

網頁開發中存在需要獲取用戶是否在線的場景及用戶網絡狀態&#xff0c;瀏覽器提了navigator.onLine和navigator.connection可以實現這一需求。 獲取在線狀態 if (navigator.onLine) {console.log("online"); } else {console.log("offline"); }監聽網絡狀…

日志的介紹

知識鋪墊&#xff1a;在我們日常開發中&#xff0c;其實日志是和我們息息相關的。但可能平常都沒怎么注意到日志相關的知識點&#xff0c;也不怎么關注日志&#xff0c;然后&#xff0c;在生產環境中&#xff0c;日志是必不可少的存在&#xff0c;項目出現問題了都是通過日志來…

cesium 添加 Echarts 圖層(空氣質量點圖)

cesium 添加 Echarts 圖層(下面附有源碼) 1、實現思路 1、在scene上面新增一個canvas畫布 2、通坐標轉換,將經緯度坐標轉為屏幕坐標來實現 3、將ecarts 中每個series數組中元素都加 coordinateSystem: ‘cesiumEcharts’ 2、示例代碼 <!DOCTYPE html> <html lan…

Excel 數據篩選難題解決

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

緩存穿透、雪崩與擊穿

緩存穿透、雪崩、擊穿 1、緩存穿透強調都沒有數據并發訪問布隆過濾器緩存NULL值 2、緩存雪崩強調批量Key過期并發訪問 3、緩存擊穿強調單個Key過期并發訪問互斥鎖邏輯過期 分布式并發控制 1、緩存穿透 緩存穿透是指數據庫和緩存都沒有的數據&#xff0c;這樣緩存永遠不會生效&…

圖形化用戶界面-java頭歌實訓

圖形化用戶界面 import java.awt.*; import javax.swing.*; public class GraphicsTester extends JFrame { public GraphicsTester() { super("Graphics Demo"); setSize(480, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void paint…