[發明專利]控制方法及裝置、計算機裝置和計算機可讀存儲介質有效
| 申請號: | 201710602580.5 | 申請日: | 2017-07-21 |
| 公開(公告)號: | CN107423093B | 公開(公告)日: | 2020-09-15 |
| 發明(設計)人: | 江威 | 申請(專利權)人: | 珠海市魅族科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/65 |
| 代理公司: | 深圳市賽恩倍吉知識產權代理有限公司 44334 | 代理人: | 孫芬 |
| 地址: | 519085 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 控制 方法 裝置 計算機 可讀 存儲 介質 | ||
本發明公開了一種控制方法及裝置、計算機裝置和計算機可讀存儲介質。在本發明中,通過在將虛擬機字節碼文件編譯為本地機器碼文件時,判斷虛擬機字節碼文件中是否包含調用數據文件的方法函數,若虛擬機字節碼文件中包含調用數據文件的方法函數,則在本地機器碼文件中,保存方法函數在虛擬機字節碼文件中的標識。由于數據文件是與固件以及設備有關的文件,而方法函數在虛擬機字節碼文件中的標識是與數據文件無關的。因此,通過本發明,可以使得本地機器碼文件具備固件獨立性和設備獨立性。
技術領域
本發明屬于終端技術領域,尤其涉及一種控制方法及裝置、計算機裝置和計算機可讀存儲介質。
背景技術
目前,安卓系統的終端在固件升級后首次開機時或者安裝應用程序時,會有一段較長的優化應用程序的過程,該過程我們稱為dex2oat編譯優化。在dex2oat編譯優化的過程中,會將dex文件編譯為oat文件,并在編譯oat文件的過程中調用方法函數。
但是,現有技術在編譯oat文件時,需要通過偏移量跳轉至調用boot.art文件的方法函數,而偏移量是需要結合boot.art文件才有效的一個數據。然而,在每個版本的固件當中或者不同的終端設備中,boot.art文件都是不一樣的。例如,在當前設備的boot.art文件中,該偏移量可能對應的是println方法函數,但是在別的設備的boot.art文件中,該偏移量可能對應的是close方法函數。由此導致oat文件在調用方法函數時依賴于boot.art文件,使oat文件不具備固件獨立性,同時也導致oat文件不具備設備獨立性。
因此,現有的oat文件存在不具備固件獨立性和設備獨立性的問題。
發明內容
本發明提供一種控制方法及裝置、計算機裝置和計算機可讀存儲介質,旨在解決現有的oat文件不具備固件獨立性和設備獨立性的問題。
本發明第一方面提供一種控制方法,其包括:
在將虛擬機字節碼文件編譯為本地機器碼文件時,判斷所述虛擬機字節碼文件中是否包含調用數據文件的方法函數;
若所述虛擬機字節碼文件中包含調用數據文件的方法函數,則在所述本地機器碼文件中,保存所述方法函數在所述虛擬機字節碼文件中的標識。
在較優的一實施例中,所述控制方法在保存所述方法函數在所述虛擬機字節碼文件中的標識之后還包括:
在終端固件升級后首次開機時或者安裝應用程序時加載運行所述本地機器碼文件,并在加載運行所述本地機器碼文件的過程中,通過所述標識調用所述方法函數。
在較優的一實施例中,所述通過所述標識調用所述方法函數包括:
通過所述標識利用地址查找函數獲取所述方法函數的索引地址;
通過所述索引地址調用所述方法函數。
在較優的一實施例中,在所述本地機器碼文件中,將所述方法函數的調用信息設置為所述地址查找函數的參數。
在較優的一實施例中,所述將所述方法函數的調用信息設置為所述地址查找函數的參數包括:
將所述標識設置為所述地址查找函數的第一個參數;
將所述方法函數所屬的類的對象設置為所述地址查找函數的第二個參數;
將所述方法函數的參數的句柄設置為所述地址查找函數的第三個參數。
本發明第二方面提供一種控制裝置,其包括:
判斷模塊,用于在將虛擬機字節碼文件編譯為本地機器碼文件時,判斷所述虛擬機字節碼文件中是否包含調用數據文件的方法函數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海市魅族科技有限公司,未經珠海市魅族科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710602580.5/2.html,轉載請聲明來源鉆瓜專利網。





