根据官网指引接入腾讯tbs文件浏览服务,但是仍然有些坑没说清。特别是对64位cpu架构的说明

1、添加tbs库

腾讯支持64位cpu的至少是43903版本,这里我们在app Gradle中配置。
注意:引用tbs库只需要这个就够了,不要配置jni、lib啥的。

api 'com.tencent.tbs:tbssdk:44181'

2、配置cpu架构

app module中配置CPU架构,注意这里不要配置"x86",“x86_64”,腾讯tbs暂时不支持x86架构。关于安卓CPU架构梳理参考

你不说我不说这里就是一个坑。

// 腾讯tbs插件(doc、docx)
ndk {abiFilters "armeabi-v7a", "arm64-v8a"
}

3、配置manifest

tbs需要初始化插件,这里必须要有网络,因此manifest中配置

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

以及application节点下配置

android:networkSecurityConfig="@xml/network_security_config"

文件network_security_config内容

<network-security-config><base-config cleartextTrafficPermitted="true"><trust-anchors><certificates src="system" /></trust-anchors></base-config>
</network-security-config>

4、代码接入tbs

初始化TBS服务会下载插件,到这里了基本就不会错了。因此这块写的相对比较简洁。需要更多信息参考官网指引,或者文末的demo

QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {@Overridepublic void onCoreInitFinished() {// 内核初始化完毕Log.e("QbSdk", "onCoreInitFinished ");Log.e("QbSdk", "onCoreInitFinished---是否可以加载X5内核: " + QbSdk.canLoadX5(context));}@Overridepublic void onViewInitFinished(boolean arg0) {// x5內核初始化完成的回调,true表x5内核加载成功,否则表加载失败,会自动切换到系统内核。Log.e("QbSdk", " 内核加载 " + arg0);Log.e("QbSdk", "onViewInitFinished---是否可以加载X5内核: " + QbSdk.canLoadX5(context));}
};
// x5内核初始化接口
QbSdk.initX5Environment(context, cb);

然后就是打开文件

// 加载文件(doc、docx等)
private void addTbsReaderView(String loadFilePath) {if (mTbsReaderView != null) {mTbsReaderView.onStop();}mTbsReaderView = new TbsReaderView(this, readerCallback);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {//不使用黑暗模式mTbsReaderView.setForceDarkAllowed(false);}relativeLayout.addView(mTbsReaderView,new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT));String extensionName = FileUtils.getFileType(loadFilePath);Bundle bundle = new Bundle();bundle.putString(TbsReaderView.KEY_FILE_PATH, loadFilePath);bundle.putString(TbsReaderView.KEY_TEMP_PATH, FileUtils.createCachePath(this));boolean result = mTbsReaderView.preOpen(extensionName, false);if (result) {mTbsReaderView.openFile(bundle);}
}

5、demo与最终效果

最终运行效果如下,demo地址

Android适配64位TBS X5内核相关推荐

  1. Android 适配 64 位架构

    Android 适配 64 位架构 原文地址 https://juejin.cn/post/6964737926617890853 背景 64位的应用性能更好,也能运行在未来仅支持 64 位架构的设备 ...

  2. 关于 mPaaS PB 接入模式适配 64 位 CPU 架构中项目报错解决方案

    背景: 2021 年末的时候,国内各个厂商应用市场就开始大力推行 app 进行 64 位架构的适配,并发布了相关规定,大致时间都是 2022 年 2 月份开始不接收仅支持 32 位的应用,9.10 月 ...

  3. Android L 64位兼容32 应用程序的认识

    关于Android L 64位系统兼容32位应用的实现的简单分析. Android L 的zygote进程的实现不同于之前的版本,除了有zygote进程之外还有zygote64进程. 在init.zy ...

  4. android app 64位架构升级 适配64位cpu架构

    一. 本质 so库的升级 二.so库升级 1.so库检查 1,首先设置: abiFilters "armeabi-v7a","arm64-v8a",然后编译出对 ...

  5. Android集成三方浏览器之X5内核,讲的明明白白

    腾讯 X5 内核也是基于 chromium 的,相比原生的 WebView 而言,优化了用户的浏览体验.SDK 是通过共享使用用户手机上微信.手机QQ.QQ空间等软件已经下载好的 X5 内核.SDK ...

  6. android中64位手机,我们需要64位Android手机吗?

    过去数月,多款新智能手机都把64位处理器作为卖点.用户应当购买一款配置64位处理器的手机吗?64位处理器的性能是32位处理器的2倍吗?这两个问题的答案是否定的.转向更新的ARM架构会带来性能的提升,但 ...

  7. VBA 32位代码适配64位

    很久前用 Access VBA 写个程序,在64位的 Office 下一直报错,遂一直用 32位的 Office.最近尝试安装了 Office 2021,看到那图标那界面顿时爱了.一时没有找到 32位 ...

  8. Android手机64位APP兼容

    为什么 2022 armv9芯片新机出货,不兼容32位,出现卡顿闪退等问题 64位性能更好 手机硬件升级,存储更大,应用包体积不敏感 应用市场的政策 Google Play声明 自 2019 年 8 ...

  9. Android之64位和32位区分

    image.png .. ABI 是什么 在Android编码时候 ,我们经常会看到ABI .ABI的意思是 Application Binary Interface 的缩写. 不同 Android ...

  10. 64位Linux的内核和用户地址空间

    32位的Linux中,0x00000000-0xBFFFFFFFFF 这3GB是 用户空间 0xC00000000-0xFFFFFFFFFF 这1GB是 内核空间 ++++++++++++++++++ ...

最新文章

  1. [转帖]SAP初级学习者一句话入门06—PS
  2. linux下scp远程拷贝文件无需输入密码工具之expect
  3. 自学机器学习、深度学习、人工智能学习资源推大聚合
  4. Springboot 2.x上传文件大小限制
  5. Android之DiskLruCache(缓存工具)
  6. OpenCV图像处理(9)——边缘提取方法对比
  7. 开课吧:什么是包?如何定义包?
  8. 运维之Linux秋招重点(根据面经和常见笔试题总结,持续更新)
  9. 车牌正则oracle,中国车牌号正则表达式
  10. 鲍威尔法源程序码matlab,十一、Powell算法(鲍威尔算法)原理以及实现
  11. matlab 谐波生成模块,simulink 谐波分析_matlab谐波分析_simulink中sign模块
  12. zemax输出ies_ProSource光源模型分析和转换软件
  13. 相机下载_SonyPMCARE, 反向工程索尼PlayMemories相机应用
  14. 办公用品管理系统服务器版,求索办公用品管理系统 2019
  15. android root 的作用,安卓手机Root好不好?手机Root后有什么好处和影响?
  16. mysql连接字符串_[MySQL] - MySQL连接字符串总结
  17. 一些实用的零零散散的知识
  18. 【C4-AI大赛】2021优秀作品荟
  19. 前端开发入门到实战:六种组织CSS的方式
  20. P5-Windows与网络基础-安装GNS3软件环境

热门文章

  1. java实现网络连接_Java 网络编程 | 菜鸟教程
  2. Logisim-Gates library
  3. python抖音涨粉代码_抖音最火表白代码
  4. Java基础学习之画板1
  5. 《Spring 揭秘》读书笔记
  6. WebApi生成接口文档
  7. MUSIC算法---空间谱估计
  8. 人脸识别门禁系统java实现_java实现人脸识别源码【含测试效果图】——前台显示层(index.jsp)...
  9. 蚂蚁区块链第17课 错误码指导大全
  10. live2dmesh渲染优先级_Live2D 性能优化