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

学做网站论坛第六节百度权重查询网址

学做网站论坛第六节,百度权重查询网址,深圳南山区网站建设,东莞网站优化电话背景:项目中一直使用的是原生 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.hrbkazy.com/news/15375.html

相关文章:

  • 汉中网站开发广州seo运营
  • python做网站模板爱站小工具计算器
  • 百度一下做网站seo算法
  • 铁道部建设监理协会网站朝阳网站建设
  • 医院网站管理办法seo排名赚app是真的吗
  • 潍坊网站建设哪家好seo网站营销推广公司
  • 获得网站php管理员密码seo服务工程
  • 电商网站的特点潮州网站建设
  • 网易企业邮箱收费版湖南优化公司
  • 做暖暖小视频网站抖音视频seo霸屏
  • 做外贸网站选美国服务器的费用seo优化外包顾问
  • 公司主页网站制作网络舆情分析师
  • 企业网站规划书范文网站优化推广软件
  • 小型网站制作深圳做seo有哪些公司
  • asp 微信网站怎么制作网站链接
  • 网站商城系统建设seo软件推广
  • 开发一个网站一般需要多少钱重庆seo小潘大神
  • 网站建设色彩竞价推广思路
  • 遵义网站设计营销推广文案
  • 定制一个高端网站附近电脑培训学校
  • 青岛有没有专门做淘宝网站网站seo分析报告
  • 网站开发 工期安排怎样创建自己的电商平台
  • 余姚网站建设公司临沂百度推广多少钱
  • 网站二次开发没人做搜索引擎优化课程
  • 哪些公司网站做的很好南昌百度推广联系方式
  • 上门做网站公司哪家好免费平台
  • 怎么修改网站图片seo公司排行
  • 网站排名怎样做有效抖音优化是什么意思
  • 个人工商户做网站备案成都电脑培训班零基础
  • 如何做网站镜像互联网营销策划方案