大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
简单记录一下加载X5内核失败原因
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站设计、外贸网站建设、都安网络推广、成都小程序开发、都安网络营销、都安企业策划、都安品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供都安建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
运行官方demo一点毛病也没有,自己创建modul运行也没问题 ,一放到自己的项目就永远初始化失败,最后发现是这个原因:
这是官方demo里的配置:
ndk {
//选择要添加的对应cpu类型的.so库 不能添加arm64-v8a 不然x5内核加载不上去
abiFilters"armeabi","armeabi-v7a","x86","mips"
}
而我原本项目中为了兼容arm64-v8a 把它arm64-v8a写进去了,删掉即可。
如果你也碰到了无法加载x5内核的原因,试试能不能解决你的问题。
集成腾讯的X5,一般都是在application中进行初始化,不过有一个现象就是第一次启动都睡有一小会产生了UI卡顿,一开始利用IntentService进行后台线程进行初始化,但还是会产生卡顿现象,不过官方在X5 SDK的v3.6版本后添加了一个多进程的service= 设置开启优化方案。
如下做法:
第一种 多进程方案: 设置开启优化方案// 在调用TBS初始化、创建WebView之前进行如下配置,以开启优化方案HashMapmap = new HashMap();map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);QbSdk.initTbsSettings(map);b)
增加Service声明 :在AndroidManifest.xml中增加内核首次加载时优化Service声明; 该Service仅在TBS内核首次Dex加载时触发并执行dex2oat任务,任务完成后自动结束;
service android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:label="dexopt"
android:process=":dexopt"/
第二种 多进程方案:仅Android 5.1+生效)
1、// 在调用TBS初始化、创建WebView之前进行如下配置,以开启优化方案
HashMapmap = new HashMap();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER,true);
QbSdk.initTbsSettings(map);
2、)
多线程方案策略配置// 在调用TBS初始化、创建WebView之前进行如下配置,以开启优化方案
HashMapmap = new HashMap();
// 配置不使用多进程策略,即该方案仅在Android 5.1+系统上生效。
map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, false);
QbSdk.initTbsSettings(map);
需要引入第三方的框架支持才能用。
富文本可以为用户提供更加多样化的文本展示形式,但由于其使用了H5标签的特殊性,一般都需要第三方框架的支持。这里推荐一款合适的第三方富文本框架,richeditor。
首先我们要使用该功能需要引入相关jar包,然后我们需要解决一个问题,那就是,在富文本编辑器的使用中,5.0以下的系统自带的webview无法实现删除图片的功能。这个漏洞在5.0以后被谷歌公司进行了修复。但是问题来了,公司的软件是要兼容到4.2系统的,总不能因为这个问题不让用户用4.x的手机吧,而且这批用户还不少,所以需要解决这个问题。我们的思路是替换掉系统的webview,更换第三方自定义webview。这里有一个好的框架推荐就是腾讯的X5内核,内含腾讯重写的Webview,版本到7.0。这里不重点讲述X5内核的好处,我们看一下如何替换。我们看到,RichEditor中最关键的一个自定义类是一个叫做RichEditor的类。这是我们布局上输入富文本区域的控件。我们看到它的继承类是WebView。这里咱们把代码拷贝出来并且重写该类,并将继承类换成X5内核中的WebView,这样我们就可以在这个类中进行其他的一些修改,比如新功能的添加之类的。