国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

探索Dalvik移植技術秘密所在

移動開發 Android
Dalvik移植技術可以使大多數Dalvik虛擬機在很多平臺上運行,這些平臺的操作系統至少是一個運行著GNUC編譯器的類似于UNIX的平臺。

其實Dalvik是基于寄存器,而JVM 卻是基于棧的,Dalvik移植技術可以將 Java .class 轉換成 .dex 格式. 一個dex檔通常會有多個.class。由于dex有時必須進行最佳化,會使檔案大小增加1-4倍,以ODEX結尾。)

本文檔指導讀者如何把Dalvik虛擬機移植到一個Linux平臺上,本文檔假定我們要移植的平臺和目前android平臺在代碼架構上有一定的相似性,可以進行移植。核心庫的移植核心庫的源代碼主要在Dalvik/libcore和dalvik/vm/native這兩個文件夾中。核心庫的源代碼是用C語言和C++寫成的。

因此在Linux環境下不需要更改。核心庫的代碼很多都是來自Apache Harmony項目,但是也有一些是來自OpenSSL、zlb和ICU等項目,因此,為了虛擬機的運行,這些項目需要被移植到新平臺上。

JNI Call Bridge 的移植DVM的運行庫絕大部分都是用portable C編寫的,其中的一個例外是JNI call bridge。簡單來說,它的作用是把一系列的整型值轉變成各種類型的函數參數,并且調用函數。這個調用過程必須符合C函數調用的約定。

為了簡化移植,JNI Call Bridge在新平臺上通常會使用開源的FFI庫(我覺得,這種庫,大概類似于java一樣,具有通用性吧)。但是,Dalvik移植技術運行不夠快,也沒有對平臺做專門優化,所以,移植JNI Call Bridge首先應該重新寫一個FFI庫。

JNI Call Bridge代碼在dalvik/vm/arch/*這個位置上,同時,基于FFI的版本(我覺得大概是在移植的時候的通用版本)在“generic”目錄下。每一種架構都有兩個源文件,其中一個是定義了JNI Call Bridge函數,函數如下。dvmPlatformInvoke是把argv所指向的值轉化為符合C類型調用的值,而后調用我上面指出的函數,再把得到的返回值放入JValue* pReturn所指向的地方。

再用./rebuild重新生成文件,看一下在dalvik/vm/mterp/out目錄下的InterpAsm-myarch.S文件,可以看到在dvmAsmInstructionStart后面的一個單塊內有stub函數的256個拷貝 。如果你不用匯編的話,系統就會一直使用stub.S。

注意一下,每一個塊開頭都有一個a.balign 64 指令。這個指令把處理程序擴展到64個字節。同時也要注意到${opcode} text變成了操作碼的名字,它是用來調用C執行的(就是dvmMterp_${opcode})

stub.S的實際內容由你自己來定義??纯碼rmv5t或者x86項目實例下的entry.S和stub.S你就知道了。如果你將要移植的系統和我們說的有些不一樣,但大體相似,目前的大部分代碼你都可以使用,只是需要修改一下某些指令。具體可以看一下armv4t的移植你就清楚了。

該函數可能使用方法簽名來決定如何處理函數中的相關值。至于方法簽名,它是一個短小的DEX簽名,用一個字符對應一個返回值和一個參數。而另外一個源文件(前面提過有兩個源文件)則定義了一個32位的“hint”。當相應的方法類型被加載時,hint值就會被計算出來。

作為“arginfo”參數進入dvmPlatformInvoke函數,hint可以用來dvmPlatformInvoke停止例如掃面函數的返回值、總體參數的大小,以及整形參數64字節條件測試的限制等的ASCII方法簽名。(我想hint應該是決定函數是否對返回值或者參數進行方法簽名掃描)。

解釋器的移植Dalvik移植技術虛擬機運行庫含有兩個解釋器,分別是標以“移動型”和“快速型”。移動型主大體上就是一個C函數,在任何裝有GCC的系統上都應該可以被編譯出來。(如果你的機器沒裝有GCC,那么你應該停用“threaded”模塊,因為這個模塊依賴于GCC的goto語句的目錄來執行的。不清楚的話可以查找THREADED_INTERP的定義。

快速型使用手工匯編導致的碎片(??這里不懂)。如果目前系統里沒有解釋器可用,那么系統就會從C stubs中生成一個解釋器,這個解釋器運行速度比移動型慢了很多,說它是快速解釋器,實在是名不符實。

快速型在系統里是被默認使能的,如果源代碼不支持快速型。那么該如何默認使能移動型呢?這可以通過dalvik.vm.execution-mode system來實現。例如。你打入如下一行:如果用匯編語言重寫解釋器的話,解釋器的效能應該會有一個明顯的提高再加上相應平臺專用架構的優化,dalvik可以用一個指令一次執行完畢(??這里也不懂)

【編輯推薦】

  1. Android應用程序組建原理深入剖析
  2. Android SMS短信服務相關概念簡述
  3. PythonAndroid數據庫相關代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應用程序的四個關鍵點
責任編輯:chenqingxiang 來源: 計世網
相關推薦

2012-07-12 09:37:23

Instagram工程技術

2010-08-10 11:16:03

IPV4IPV6

2012-02-23 16:09:59

Webkit豌豆莢

2012-06-29 10:22:36

系統架構

2010-01-15 19:17:48

C++語言

2019-08-15 16:00:21

Linux內核Kconfig

2018-01-12 17:03:29

HTTPgzip壓縮

2023-11-11 19:43:12

緩存數據庫

2019-10-24 10:04:33

技術債務開發軟件

2024-03-22 08:11:20

.NETJSON數據序列化

2012-05-31 13:22:00

虛擬化

2017-04-24 08:53:04

終極溝通技術Facebook

2014-12-02 10:33:51

2012-05-28 09:22:19

虛擬化

2012-08-13 09:46:35

虛擬化

2012-07-12 15:04:56

Windows 7操作系統

2009-10-15 10:47:49

光纖布線技術

2024-06-19 19:07:53

2017-06-12 18:24:25

數據庫壓縮技術

2016-05-24 15:55:01

大數據TalkingData
點贊
收藏

51CTO技術棧公眾號

av资源在线看片| 婷婷丁香在线| 久热精品视频在线观看| 欧美一区二区三区视频在线观看| 色综合久久综合中文综合网| 欧美一级一区二区| 日韩美女视频免费看| 精品国产91亚洲一区二区三区www| 欧美日韩精品免费看| 国产欧美亚洲日本| 久久精品aaaaaa毛片| 免费成人看片网址| 51xx午夜影福利| 哪个网站能看毛片| 91青娱乐在线视频| 九色在线网站| 男人av在线| 青青青青在线| 丝袜老师在线| 女优一区二区三区| 亚洲婷婷丁香| 一区二区日韩欧美| 久久av免费| 色老头在线观看| 爱爱爱免费视频在线观看| 精品国产一级毛片| 亚洲国产日韩在线一区模特| 国产精品久久999| 国产超级av在线| 国产66精品久久久久999小说| 国产91精品视频在线观看| 另类少妇人与禽zozz0性伦| 欧美激情久久久久| 久久伊人免费视频| 特级西西444www大精品视频| 日韩人妻精品无码一区二区三区| 成人免费观看视频在线观看| 国产99久久精品一区二区永久免费| 欧洲日韩一区二区三区| 视频一区视频二区中文| 四季av一区二区凹凸精品| 欧美国产美女| 午夜在线不卡| 国内在线免费高清视频| xxxx18hd亚洲hd捆绑| 少妇高潮 亚洲精品| 91麻豆精品在线观看| 亚洲精品成人无限看| 综合视频在线| 捆绑调教一区二区三区| 欧美视频在线免费| 亚洲小说欧美另类婷婷| 精品在线免费视频| 亚洲一区免费观看| 欧美劲爆第一页| 亚洲精品一区二区三区蜜桃久| 午夜爽爽爽男女免费观看影院| 国产福利在线免费观看| 亚洲人成网亚洲欧洲无码| 精品亚洲porn| 天天做天天摸天天爽国产一区| 欧美欧美午夜aⅴ在线观看| 欧美色图在线视频| 亚洲成人免费在线视频| 亚洲人成77777在线观看网| 国产精品毛片a∨一区二区三区|国| 精品不卡在线| www浪潮av99com| 永久免费av在线| 国产精品丝袜在线播放| 美女网站视频久久| 国产精品伦理在线| 亚洲国产精品人人爽夜夜爽| 免费av一区| 黄色片免费在线观看| 欧美亚洲自拍偷拍| 国产精品一区二区久久国产| 在线观看视频你懂的| 在线观看免费版| 欧美日韩大片免费观看| 天堂一区二区三区四区| 日本不卡网站| 日韩脚交footjobhdboots| 最新av网站在线观看| 亚洲综合日韩欧美| 激情六月天婷婷| 欧美日本网站| 国产91精品入| 91女人视频在线观看| 狠狠综合久久| 99riav视频在线观看| 激情综合中文娱乐网| 亚洲一区影音先锋| 亚洲一区二区久久久久久| 粉嫩tv在线播放| 久久av资源| 亚洲免费在线观看| 97超级碰碰| 成年人在线观看视频| 国内黄色精品| 国产精品视频yy9299一区| 日韩一区二区三区视频| 国产成人精品在线视频| 国产日韩亚洲欧美在线| 五月天婷婷在线视频| 欧美高清日韩| 国产日产精品1区| 91福利在线免费观看| 久久免费视频这里只有精品| www.好吊操| 日本中文字幕一区二区有码在线 | 一区二区三区欧美在线| 浅井舞香一区二区| 亚洲精品一区在线观看香蕉| 欧美日韩加勒比精品一区| 丁香婷婷综合五月| 久久尤物视频| 欧美一区久久| 香蕉视频一区二区三区| 亚洲电影二区| 一区二区电影免费观看| 成人短视频在线| 日色在线视频| 成人手机在线| 精品国产成人av在线免| 男女爱爱视频网站| 免费精品视频一区| 91成人在线看| 国产精品wwww| 欧美亚洲国产成人精品| 美女精品久久久| 在线观看日韩欧美| 亚洲精品国产拍免费91在线| 日韩午夜在线影院| 欧美丰满一区二区免费视频| 色综合久久中文字幕综合网| 亚洲最大成人网4388xx| 国产精品国产三级国产aⅴ入口 | 精品国产一区久久久| 精品成人佐山爱一区二区| 欧美视频完全免费看| 欧美性xxxxxxx| 欧美日韩黄色大片| 亚洲va天堂va国产va久| 亚洲午夜在线观看视频在线| 中文字幕佐山爱一区二区免费| 国产女同互慰高潮91漫画| 久久久综合视频| 99国产精品国产精品毛片| 成人免费视频视频在线观看免费| 国产精品一区二区久激情瑜伽| 久久99精品久久久| 久久91精品久久久久久秒播| 久久成人麻豆午夜电影| 久久99热狠狠色一区二区| 精品一区二区免费| 国产成人无遮挡在线视频| 国产精品亚洲午夜一区二区三区| 国产美女一区二区三区| 国产麻豆日韩欧美久久| 国产成人av电影在线观看| 不卡av电影在线播放| 久久午夜羞羞影院免费观看| 91蜜桃婷婷狠狠久久综合9色| 99久久亚洲一区二区三区青草| 粉嫩一区二区三区在线看| 91在线观看地址| 中文字幕av一区二区三区免费看| 欧美国产1区2区| 亚洲九九爱视频| 午夜激情一区二区三区| 91黄色激情网站| 日韩三级视频中文字幕| 精品亚洲一区二区三区在线播放 | 在线播放你懂的| 伪装者在线观看完整版免费| а天堂8中文最新版在线官网| 黄色精品在线观看| 丁香影院在线| 成人亚洲视频| 欧美三级电影在线| 99精品电影| 欧美亚洲视频| 国产精品一区在线观看乱码| www成人在线观看| 一区二区久久久久| 欧美日韩免费视频| 日韩精品久久久久| 色综合久久天天综线观看| 国产91免费观看| 国产精品国产精品| 日本免费黄色小视频| 亚洲 欧美 日韩系列| 最新国产在线| 在线h片观看| 91精品国产色综合久久不卡粉嫩| 欧美猛男男男激情videos| 一区二区三区四区五区精品视频| 国产69精品久久久久777| 亚洲另类中文字|