可移植的oat檔案
oat檔案是不能移植的,但通過修改libart-compiler,生成可以移植的oat檔案。
相關程式碼在這裡:
http://androidxref.com/6.0.1_r10/xref/art/compiler/driver/compiler_driver-inl.h#308
讓IsFastInvoke永遠返回false,那麼生成的oat就是可以移植的了。
fast_path是art的一種優化模式,作用跟linux下的懶繫結一樣
讓編譯出來的oat在執行函式呼叫時,呼叫的是boot.art裡的DexCache的方法
DexCache裡的所有方法,一開始指向art_quick_resolution_trampoline,用來尋找真正的方法,
找到以後,把真正的方法地址寫到DexCache裡面
如果去掉fast_path,那麼生成的函式呼叫程式碼,再也不使用DexCache,每次都是全新的查詢。
當然,也就與boot.art沒有關係了,這樣一樣,就可以在不同的手機間拷貝了。
相關推薦
可移植的oat檔案
oat檔案是不能移植的,但通過修改libart-compiler,生成可以移植的oat檔案。 相關程式碼在這裡: http://androidxref.com/6.0.1_r10/xref/art/compiler/driver/compiler_driver-inl.h#308 讓Is
程序員之---C語言細節12(指針和數組細節,"//"的可移植性說明)
[1] watermark popu i++ gravity 移植 char dsm 指針 主要內容:指針和數組細節,"//"的可移植性說明 #include <stdio.h> int main(int argc, char
C#使用Xamarin開發可移植移動應用(3.進階篇MVVM雙向綁定和命令綁定)附源碼
www. 變更 ges ntp image 上下文 判斷 接口 images 前言 系列目錄 C#使用Xamarin開發可移植移動應用目錄 源碼地址:https://github.com/l2999019/DemoApp 可以Star一下,隨意 - - 說點什麽.. 嗯..
C#使用Xamarin開發可移植移動應用進階篇(7.使用布局渲染器,修改默認布局),附源碼
頂部 urn hit .com move 應用開發 當前 namespace int 前言 系列目錄 C#使用Xamarin開發可移植移動應用目錄 源碼地址:https://github.com/l2999019/DemoApp 可以Star一下,隨意 - - 說點什麽..
C#使用Xamarin開發可移植移動應用進階篇(8.打包生成安卓APK並精簡大小),附源碼
demo page 模糊 icon 通過 itl 是不是 es2017 微軟 前言 系列目錄 C#使用Xamarin開發可移植移動應用目錄 源碼地址:https://github.com/l2999019/DemoApp 可以Star一下,隨意 - - 說點什麽.. 嗯,前
Exchange 2013數據庫可移植性恢復用戶數據庫(一)
服務器 Exchange 案例講述:我目前環境中有一套Exchagne01和Exchange02服務器,全部是全角色安裝的exchange2013CU8的系統。這兩臺服務器同屬一個DAG組,由於特殊原因DAG的故障轉移群集出現問題,無法正常恢復,導致用戶郵箱不能訪問。目前發現Exchange01上的數
Exchange 2013數據庫可移植性恢復用戶數據庫(二)
服務器 Exchange 案例講述:我目前環境中有一套Exchagne01和Exchange02服務器,全部是全角色安裝的exchange2013CU8的系統。這兩臺服務器同屬一個DAG組,由於特殊原因DAG的故障轉移群集出現問題,無法正常恢復,導致用戶郵箱不能訪問。目前發現Exchange01上的數
可移植的配置visual studio工程第三方庫
為什麽 需要 另一個 路徑配置 引用 自動下載 不同 失敗 .com 現在編程有太多的好用的第三方庫,例如 計算機視覺方面的opencv c++的擴充庫boost 特殊的第三方庫,相機庫,通訊庫等 使用這些庫給我們帶來了極大的便利,同時也有很多困擾。這個工程在我電腦上明
代碼的可移植可復用性
效率 工具 工作 發的 情況 pow 自己 正常 復用 從本人最近有限的單片機(powerpc)汽車電子開發的經驗來看。 一定要註意工具的使用。先把工具鏈走通。遇到問題能夠自己去解決。 在保證硬件能夠正常工作的情況下(通過示波器和各種簡單的測試程序來進行驗證)然後主要的工作
C++的可移植性和跨平臺開發
file volatil rec 遍歷 程序包 arc scu 千萬 之前 概述 今天聊聊C++的可移植性問題。如果你平時使用C++進行開發,並且你對C++的可移植性問題不是非常清楚,那麽我建議你看看這個系列。即使你目前沒有跨平臺開發的需要,了解可移植性方面的知識對你還
在JAVA可移植性的來源的三方面
實現 mage 存在 最簡 ont 大學 per cpu pan 軟件可移植性的概念是與軟件從某一環境轉移到另一環境下的難易程度。為獲得較高的可移植性,在設計過程中常采用通用的程序設計語言和運行支撐環境。盡量不用與系統的底層相關性強的語言。下面介紹JAVA的可移植性。
編譯可移植的python
cal pytho 通用 chm 需要 install 16px 執行權 sed 1. 在低版本系統機器上,編譯python: cd Python-2.7.15/Modules vim Setup.dist 修改下述代碼: ##########
一個通用的、靈活的、可配置的、可移植的按鍵事件處理的實現
MCUKeys 1 簡介 MCUKeys是一個簡潔小巧可配置的、靈活的、通用的的按鍵檢測程式,截至到目前為止它可以檢測如下輸入事件: 按鍵按下 按鍵擡起 長按(時間可配置) 連擊(時間可配置) 雙擊 組合按鍵(可以實現以上五種狀態)
Eclipse匯出可執行Java工程/可執行Jar檔案(包含第三方Jar包)
1. 首先,右鍵你的Java工程,選擇Export,在Java資料夾下選擇Runnable JAR file,如下圖所示: 2. 選擇Runnable JAR file後,會彈出如下所示的對話方塊,選擇好匯出路徑後,預設Finish其實就可以了。但是需要注意的是兩點:
嵌入式命令列操作(可移植性)
本文件基於stm32f103並移植到F407, MSP430,以及s3c2440 最終效果如下: 以上多餘列印是除錯時解析bug用的,可以去除。 本文參考u-boot命令列,重點部分有三個:①資料定義 ②獲取串列埠資料(1個位元組) ③解析資料 資料定義 typedef v
嵌入式Linux開發——(十五)移植YAFFS檔案系統
一、移植YAFFS檔案系統 1)YAFFS檔案系統的介紹 ①YAFFS(yet another flash file system)是一種類似於JFFS / JFFS2,專門為NAND Flash設計的嵌入式檔案系統,適用於大 &nbs
Exchange2010-13-16 使用資料庫可移植性恢復資料庫
1、驗證要移動的資料庫是否處於乾淨關閉狀態。如果資料庫不處於乾淨關閉狀態,則執行軟恢復。備註 執行軟恢復時,任何未提交的日誌檔案都會提交到資料庫。如果沒有所有需要的日誌檔案,則無法完成軟恢復過程。繼續執行步驟 2。要將所有未提交的日誌檔案提交到資料庫,請在命令提示符下執行以下命令。 ESEUTIL /R
Exchange2010-13-16 使用數據庫可移植性恢復數據庫
超過 sub 創建 _屬性 提示符 new 訪問 logfile 客戶端 1、驗證要移動的數據庫是否處於幹凈關閉狀態。如果數據庫不處於幹凈關閉狀態,則執行軟恢復。備註 執行軟恢復時,任何未提交的日誌文件都會提交到數據庫。如果沒有所有需要的日誌文件,則無法完成軟恢復過程。繼續
關於檔案的副檔名和區別原始檔、目標程式檔案、可執行程式檔案
1.在C 語言中,當你把程式碼敲出來後,就應該儲存它,但在儲存的時候應該注意要在檔名的最後打上字尾名.c,表示這個程式碼是C語言的原始檔。當你要執行這個程式碼的時候,c語言的執行軟體就只會執行c語言的原始檔,也就是不加上字尾名.c會使得執行軟體無法順利執行該檔案 2.原始檔的副檔名 .c
基於Vagrant搭建可移植的lnmp開發環境
使用vagrant搭建開發環境可以避免團隊開發帶來的開發環境不一致問題,避免了很多不必要的麻煩,同時其分發機制也也有利於新來的同事立即部署適合於公司的開發環境,非常便利,是很多網際網路公司的首選。因此,學習如何搭建基於vagrant的開發環境是很有必要的。 Vagrant 是一個簡單易用的部署工