真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

androidj,android基礎(chǔ)知識

Androidj是什么

Androidj本義系機器人,如果再某個軟件出現(xiàn)就應(yīng)該譯為教程或者應(yīng)用軟件

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),翼城企業(yè)網(wǎng)站建設(shè),翼城品牌網(wǎng)站建設(shè),網(wǎng)站定制,翼城網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,翼城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

一個android 項目,類文件都變成了 J 開頭的文件

這是因為你的studio設(shè)置了省電模式,你可以通過 FilePower Save Mode取消掉

19)(一)'>android 從jobject、jclass獲取類名(API>19)(一)

用途在Art中Hook JNI相關(guān)函數(shù)。存在jobject jclass 參數(shù)時需要得到具體的類名。

在Art虛擬機中:

jobject在內(nèi)存中表現(xiàn)為:art::mirror::Object,可從GetObjectClass方法中分析得到(art/runtime/jni_internal.cc)

jclass在內(nèi)存中表現(xiàn)為:art::mirror::Class,可從GetSuperclass方法中分析得到(art/runtime/jni_internal.cc)

獲取類名重點在art::mirror::Class類中,通過分析Class 類發(fā)現(xiàn)在art/runtime/mirror/class-inl.h頭文件中存在一個獲取類名的方法

上述方法存在兩個問題:

綜上所述,GetName不適合獲取類名

在dalvik虛擬機中存在一個方法dvmDecodeIndirectRef,可以將jobject、jclass轉(zhuǎn)為對應(yīng)的內(nèi)存結(jié)構(gòu)指針。

經(jīng)過查找發(fā)現(xiàn)在/art/runtime/thread.cc中存在一個方法DecodeJObject可以將jobject、jclass轉(zhuǎn)換為對應(yīng)的內(nèi)存結(jié)構(gòu)指針

DecodeJObject是Thread類的一個方法,通過dlsym拿到方法地址后,其表現(xiàn)形式如下:

第一個參數(shù)表示this即當(dāng)前對象。可以通過如下方法獲取Thread對象的實例

同時發(fā)現(xiàn)/art/runtime/mirror/class.cc中存在GetDescriptor方法可以獲取art::mirror::Class的類名

GetDescriptor是Class類的一個方法,通過dlsym拿到方法地址后,其表現(xiàn)形式如下:

第一個參數(shù)表示this即當(dāng)前對象??梢酝ㄟ^DecodeJObject獲取Class對象的實例,

在最終可以整理得到獲取jclass類名的方法:

獲取jobject方法就簡單一點其內(nèi)存結(jié)構(gòu)可以精簡如下:

其中klass就是Class對象的指針,最終整理后的方法如下:

上述方法太過于麻煩,后面給出一個簡單的方法,可以模擬dalvik解析dex拿到類名。不早了,睡了


文章名稱:androidj,android基礎(chǔ)知識
鏈接地址:http://weahome.cn/article/dsisedh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部