【轉】Android靜態集成X5內核

項目中的老機器使用webview 無法加載vue3打包的網頁,只能用獨立的webview內核,采用靜態加載x5內核的方式, 以下內容轉自簡書作者漆先生的博客,僅用作備份記錄

之前在項目中在線集成的X5內核,但是效果不好,只有手機設備這種裝過微信QQ的機器加載成功的概率才比較理想,其它工程機器基本都是失敗的,因此考慮靜態集成到項目里邊。

一、獲取X5內核的方法

打開調試頁,安轉內核,logcat過濾:PLUGIN-TbsDownloadDebugPlugin ,可以看到下載鏈接
參考文章:https://blog.csdn.net/qq_34205629/article/details/122375262#comments_20014428

二、拷貝內核

拷貝到assets目錄下,初始化的時候再拷貝到cache目錄下,其它目錄也可

1.拷貝方法

public static String getAssetsCacheFile(Context context, String fileName) {File cacheFile = new File(context.getCacheDir(), fileName);try {InputStream inputStream = context.getAssets().open(fileName);try {FileOutputStream outputStream = new FileOutputStream(cacheFile);try {byte[] buf = new byte[1024];int len;while ((len = inputStream.read(buf)) > 0) {outputStream.write(buf, 0, len);}} finally {outputStream.close();}} finally {inputStream.close();}} catch (IOException e) {e.printStackTrace();}return cacheFile.getAbsolutePath();
}

三、安裝本地內核

根據系統abi選擇32位和64位的tbs內核,安裝本地內核并初始化,

private fun initX5() {if (QbSdk.getTbsVersion(applicationContext) == 0) {Logger.i(TAG, "Install")val phoneCpus = Build.SUPPORTED_ABISvar fileName = ""if (phoneCpus[0] == "arm64-v8a") {fileName = "046007_x5.tbs.apk"Log.i(TAG, "64bit $fileName")} else if (phoneCpus[0] == "armeabi-v7a") {fileName = "045912_x5.tbs.apk"Log.i(TAG, "32bit $fileName")}if (fileName.isBlank()) {Log.i(TAG, "no support")initX5Setting()}val newPath = FileUtil.getAssetsCacheFile(applicationContext, fileName)Log.i(TAG, "path $newPath")QbSdk.reset(applicationContext)QbSdk.installLocalTbsCore(applicationContext, fileName.substring(0, fileName.indexOf("_")).toInt(), newPath)QbSdk.setTbsListener(object : TbsListener {override fun onDownloadFinish(i: Int) {}override fun onInstallFinish(i: Int) {Logger.i(TAG, "onInstallFinish: $i")initX5Setting()}override fun onDownloadProgress(i: Int) {}})} else {Logger.i(TAG, "onlyInit")initX5Setting()}
}private fun initX5Setting() {//避免第一次打開需要安轉X5,設置的的監聽導致內存泄漏,重置為nullQbSdk.setTbsListener(null)val map = HashMap<String, Any>(2)map[TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER] = truemap[TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE] = trueQbSdk.initTbsSettings(map)Logger.i(TAG, "canLoadX5: ${QbSdk.canLoadX5(applicationContext)}|TbsVersion:" + QbSdk.getTbsVersion(applicationContext))
}

四、內核地址

32位(45912)
鏈接:https://pan.baidu.com/s/1pz_HSnzdzvEQ9RI5ohOVQg
提取碼:ad9l
64位(46007)
鏈接:https://pan.baidu.com/s/1E1wgW1-ztHDg5xANDcePog
提取碼:sil3

備份下載

32位(45912)鏈接: https://pan.baidu.com/s/1MAJpPkTjtFY1gqz9myuYsw 提取碼: 5v3r?

64位(46007)鏈接: https://pan.baidu.com/s/1WmXGBjWb5yTGGPfF2Z_Qcw 提取碼: 3p5e?

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

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

相關文章

基于STM32的智能電池管理系統

目錄 引言環境準備智能電池管理系統基礎代碼實現&#xff1a;實現智能電池管理系統 4.1 數據采集模塊4.2 數據處理與分析4.3 控制系統實現4.4 用戶界面與數據可視化應用場景&#xff1a;電池管理與優化問題解決方案與優化收尾與總結 1. 引言 智能電池管理系統&#xff08;Ba…

【昇思25天學習打卡營打卡指南-第十三天】ShuffleNet圖像分類

ShuffleNet圖像分類 ShuffleNet網絡介紹 ShuffleNetV1是曠視科技提出的一種計算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一樣主要應用在移動端&#xff0c;所以模型的設計目標就是利用有限的計算資源來達到最好的模型精度。ShuffleNetV1的設計核心是引入了兩種操…

GPT-5 一年半后發布,打開人工智能新世紀

關于GPT-5一年半后發布的消息&#xff0c;這一預測主要基于OpenAI首席技術官Mira Murati的采訪和聲明。然而&#xff0c;需要明確的是&#xff0c;這個時間點&#xff08;即2025年底或2026年初&#xff09;已經與早期傳聞有所不同&#xff0c;顯示了OpenAI對產品質量的重視&…

react18.x+播放文本內容

需要調接口將文字傳遞給后端將文字轉換成音頻文件&#xff0c;然后播放&#xff0c;同時每次播放不同文本時&#xff0c;當前播放的文本需要暫停&#xff0c;切換到播放新點擊的文本 可以設置緩存播放過的音頻&#xff0c;也可以不設置緩存&#xff1a; 設置緩存的代碼如下&am…

驍龍相機拍照流程分析

和你一起終身學習&#xff0c;這里是程序員Android 經典好文推薦&#xff0c;通過閱讀本文&#xff0c;您將收獲以下知識點: 1.deliverInputEvent 拍照點擊事件處理 2.submitRequestList Camera 提交拍照請求 3.createCaptureRequest 拍照請求幀數 驍龍相機通過binder 數據傳輸…

idea 內存參數修改不生效問題解決 VM參數設置不生效解決

很多人配置idea 內存參數&#xff0c;怎么配置都不生效&#xff0c;主要原因是配置文件用的不是你修改的那個。 系統環境變量中的這個才是你真正要修改的配置文件。 找到并修改后保存&#xff0c;重啟idea就可生效

C++ | Leetcode C++題解之第208題實現Trie(前綴樹)

題目&#xff1a; 題解&#xff1a; class Trie { private:vector<Trie*> children;bool isEnd;Trie* searchPrefix(string prefix) {Trie* node this;for (char ch : prefix) {ch - a;if (node->children[ch] nullptr) {return nullptr;}node node->children[…

人工與智能系統之間的交互方式

人工與智能系統之間的交互方式 #mermaid-svg-xSsFZWak2bsyV0un {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xSsFZWak2bsyV0un .error-icon{fill:#552222;}#mermaid-svg-xSsFZWak2bsyV0un .error-text{fill:#5522…

分詞算法在自然語言處理中的基本原理與應用場景

分詞算法在自然語言處理中的基本原理與應用場景 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 分詞是自然語言處理&#xff08;NLP&#xff09;中的重要基礎…

python腳本 限制 外部訪問 linux服務器端口

注意&#xff1a;該腳本會清空linux防火墻的filter表的規則和用戶自定義鏈路 腳本的效果是將端口限制為僅服務器內部訪問&#xff0c;提高服務的安全性&#xff0c;穩定性 可以提供ip地址白名單 具體腳本&#xff1a; #!/usr/bin/python3 import argparse, subprocess, sys,…

13_網絡安全

目錄 網絡安全協議 網絡安全協議 PGP協議 網絡安全技術 防火墻技術 入侵檢測系統 入侵防御系統 殺毒軟件 蜜罐系統 計算機病毒與木馬 網絡安全協議 網絡安全協議 物理層主要使用物理手段隔離、屏蔽物理設備等&#xff0c;其他層都是靠協議來保證傳輸的安全&#xff…

美國服務器租用詳細介紹與租用流程

在數字化時代&#xff0c;服務器租用已成為許多企業和個人拓展業務、存儲數據的重要選擇。美國作為全球科技發展的前沿陣地&#xff0c;其服務器租用服務也備受矚目。下面&#xff0c;我們將詳細介紹美國服務器租用的相關知識及租用流程。 一、美國服務器租用簡介 美國服務器租…

中英雙語介紹美國的州:新澤西州(New Jersey)

中文版 新澤西州&#xff08;New Jersey&#xff09;位于美國東北部&#xff0c;是美國面積較小但人口密度較高的州之一。新澤西州因其便利的地理位置、發達的經濟和豐富的歷史文化而聞名。以下是對新澤西州各方面的詳細介紹&#xff1a; 人口 截至2020年&#xff0c;美國人…

引領汽車軟件開發走向ASPICE認證之路

亞遠景科技與ASPICE認證的關系可以從以下幾個方面來闡述&#xff1a; (要明確的是&#xff1a;在ASPICE行業中專業來說&#xff0c;ASPICE項目是沒有認證&#xff0c;而只有評估。不過&#xff0c;為了方便溝通&#xff0c;人們常將這一評估過程稱為認證。&#xff09; 行業專…

tomcat定時重啟

Tomcat定時重啟&#xff08;linux&#xff09; 1. 編寫腳本 在tomcat的bin目錄下&#xff0c;使用vim restart.sh&#xff0c;編寫restart.sh腳本&#xff0c;插入一下內容&#xff0c;最后并保存&#xff01; #!/bin/bash# 初始化全局環境變量 . /etc/profilecd /usr/loca…

探索數據結構:隊列的的實現與應用

&#x1f511;&#x1f511;博客主頁&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列專欄&#xff1a;漸入佳境之數據結構與算法 歡迎來到泊舟小課堂 &#x1f618;博客制作不易歡迎各位&#x1f44d;點贊?收藏?關注 一、隊列的概念 隊列是一個線性的數據結構&#…

windows環境下創建python虛擬環境

windows環境下創建python虛擬環境 使用virtualenv庫創建虛擬環境&#xff0c;可使不同的項目處于不同的環境中 安裝方法&#xff1a; pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple pip install virtualenvwrapper-win -i https://pypi.tuna.tsinghua…

Spring Cloud Alibaba之負載均衡組件Ribbon

一、什么是負載均衡&#xff1f; &#xff08;1&#xff09;概念&#xff1a; 在基于微服務架構開發的系統里&#xff0c;為了能夠提升系統應對高并發的能力&#xff0c;開發人員通常會把具有相同業務功能的模塊同時部署到多臺的服務器中&#xff0c;并把訪問業務功能的請求均…

談談WebComponents | 前端開發

一、 源起 讓我們以一個例子開始。 假設我們要做一個環形進度條&#xff0c;它可以&#xff1a; 1、根據進度數值的不同&#xff0c;計算出百分比&#xff0c;以渲染對應的角度值。 2、根據設置的進度不同&#xff0c;我們用不同的顏色加以區分。 3、在環的中間我們以動畫遞增的…

小程序、APP對接廣告聯盟進行廣告變現有什么區別?

小程序VS APP對接廣告聯盟有什么區別&#xff1f; 開發完成的小程序對接廣告聯盟廣告變現&#xff0c;開發完成的APP對接廣告聯盟有什么區別&#xff1f; 首先小程序對接廣告聯盟&#xff0c;無論是微信小程序還是抖音小程序都只支持對接單一的廣告聯盟接入。抖音小程序只支持…