当前位置: 首页 > news >正文

html5做旅游网站网络推广策划方案模板

html5做旅游网站,网络推广策划方案模板,英文版网站制作,新乡seo背景:项目中一直使用的是原生 SP,众所周知,使用原生 SP 存在卡顿性能问题。公司的性能监控平台抓到不少原生 SP 导致的 ANR 问题: java.io.FileDescriptor.sync (FileDescriptor.java) android.os.FileUtils.sync (FileUtils.java:256) android.app.SharedPreferencesImpl.…

背景:项目中一直使用的是原生 SP,众所周知,使用原生 SP 存在卡顿性能问题。公司的性能监控平台抓到不少原生 SP 导致的 ANR 问题:


java.io.FileDescriptor.sync (FileDescriptor.java)
android.os.FileUtils.sync (FileUtils.java:256)
android.app.SharedPreferencesImpl.writeToFile (SharedPreferencesImpl.java:807)
android.app.SharedPreferencesImpl.access$900 (SharedPreferencesImpl.java:59)
android.app.SharedPreferencesImpl$2.run (SharedPreferencesImpl.java:672)
android.app.QueuedWork.processPendingWork (QueuedWork.java:265)
android.app.QueuedWork.waitToFinish (QueuedWork.java:178)
android.app.ActivityThread.handleServiceArgs (ActivityThread.java:4977)
android.app.ActivityThread.access$2300 (ActivityThread.java:284)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:2322)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loopOnce (Looper.java:233)
android.os.Looper.loop (Looper.java:334)
android.app.ActivityThread.main (ActivityThread.java:8396)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:582)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1068)

因此,替换原生 SP 迫在眉睫。

本文记录如何使用腾讯开源框架 MMKV 替换原生 SP、以及替换后当中遇到的一些问题解决。

一、替换方案选择

综合考虑,我们选择了方案3

二、接入 MMKV

  1. 新建 MMKV module

build.gradle 中添加依赖,这里采用的是较为稳定的版本 1.2.14

implementation 'com.tencent:mmkv:1.2.14'

2. 重新实现SharedPreferences.Editor, SharedPreferences 以及迁移原本的 SharePreferences 数据


package com.mikel.mmkv;import android.content.Context;
import android.content.SharedPreferences;import com.tencent.mmkv.MMKV;import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;public class MMKVSP implements SharedPreferences.Editor, SharedPreferences {private MMKV mmkv;private Context mContext;private boolean isMultiprocess;private ArrayList<OnSharedPreferenceChangeListener> listeners;private final Object listenerLock = new Object();public static void initialize(Context context) {MMKV.initialize(context);}public MMKVSP(Context context, String name, boolean multiProcess) {mContext = context;isMultiprocess = multiProcess;mmkv = MMKV.mmkvWithID(name,(isMultiprocess? Context.MODE_MULTI_PROCESS :  Context.MODE_PRIVATE));listeners = new ArrayList<>();importFromAndroidSp(name);}private void importFromAndroidSp(String fileName) {MMKV migrateSpRecord = MMKV.mmkvWithID("migrate_sp_record");boolean isImported = migrateSpRecord.getBoolean(fileName, false);SharedPreferences sharedPreferences = null;if (!isImported) {if(mContext instanceof IMMKVProvider) {sharedPreferences = ((IMMKVProvider)mContext).getSuperSharedPreferences(fileN
http://www.mmbaike.com/news/100164.html

相关文章:

  • 网站建设及优化 赣icp独立站seo
  • 深圳中心网站建设指数分布的分布函数
  • 有哪些可以在线做app的网站有哪些google play官网
  • 网站建设找哪家好全网营销外包
  • 网站导航栏一般有什么内容chrome官网下载
  • 网站关于我们模板seo实战培训学校
  • wordpress 搭建多站点最近一周新闻热点回顾
  • nas可以做网站下载服务器吗百度地图优化
  • 企业外部网站建设广州网站优化方式
  • 公司网站内容如何做网络营销的八种方式
  • fomo3d 网站怎么做关键词优化快速
  • 沈阳模板建站公司推荐衡水网站seo
  • 做问卷赚钱最好似网站天津seo优化
  • 广州网站建设优化网站主题
  • 一份完整的活动策划网站优化有哪些类型
  • 新疆克拉玛依区建设局网站seo排名是什么
  • 公司网站代码模板下载服务器ip域名解析
  • 济南环保局官方网站浙江网站建设制作
  • 制作网站专业网络营销策略包括哪四种
  • 网站设计有哪几种设计方法网络推广整合平台
  • wordpress盗版模板济南网站优化公司哪家好
  • 无锡网站优化推广广告最多的网站
  • 武汉做网站的价格今天发生了什么重大新闻
  • 烟台做网站哪里好市场调研报告怎么写范文
  • 做网站需要购买服务器吗国内新闻摘抄2022年
  • 济南做网站优化的公司南宁百度推广代理商
  • flash网页设计上海网站seo优化
  • 网站建设银行卡死期存款提前取出网络营销战略
  • 做的很好的淘宝客网站网站建设解决方案
  • 在线建站软件百度快速收录账号购买