zm.blog

select * from learn


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

轻量级存储框架MMKV

发表于 2019-08-17 | 分类于 Android , 框架 | | 阅读次数:

一、前言

APP 的性能优化之路是永无止境的, 这里学习一个腾讯开源用于提升本地存储效率的轻量级存储框架 MMKV

目前项目中在轻量级存储上使用的是 SharedPreferences, 虽然 SP 兼容性极好, 但 SP 的低性能一直被诟病, 线上也出现了一些因为 SP 导致的 ANR

网上有很多针对 SP 的优化方案, 这里笔者使用的是通过 Hook SP 在 Application 中的创建, 将其替换成自定义的 SP 的方式来增强性能, 但 SDK 28 以后禁止反射 QueuedWork.getHandler 接口, 这个方式就失效了

因此需要一种替代的轻量级存储方案, MMKV 便是这样的一个框架

二、集成与测试

以下介绍简单的使用方式, 更多详情请查看 Wiki

2.1 依赖注入

在 App 模块的 build.gradle 文件里添加:

1
2
3
4
dependencies {
implementation 'com.tencent:mmkv:1.0.22'
// replace "1.0.22" with any available version
}
阅读全文 »

BannerViewPage

发表于 2019-08-13 | 分类于 Android , View | | 阅读次数:

BannerViewPage

Banner当前屏幕显示下一页内容的一部分,用ViewPager偏移来实现。

阅读全文 »

关于OKR的解读

发表于 2019-07-31 | 分类于 awsome | | 阅读次数:

OKR是一套严密的思考框架和持续的纪律要求,旨在确保员工紧密协作,把精力聚焦在促进组织成长的、可衡量的贡献上。

具体拆解如下:

1、严密的思考框架:OKR意在提升绩效,但如果只是简单的每个季度跟踪一下的你的结果,你不会如偿所愿。

2、持续的纪律要求:OKR代表了一种时间和精力上的承诺。

  • 以季度(或者其他预先规定的周期)为单位刷新OKR;
  • 仔细确认结果达成情况;
  • 如有必要,持续修正现行战略和商业模式;
  • 结果导向。

3、确保员工紧密协作:由于OKR对每个人都充分共享,组织内从上至下都可以看到OKR及其达成情况。

4、精力聚焦:OKR不是,也不应被当成一张待完成的任务清单。OKR的主要目的是用来识别最关键的业务目标,并通过量化的关键结果去衡量目标达成情况。战略就是不做什么和做什么,两者都同等重要,不可偏废!OKR也是如此。你必须做出最终取舍,决定哪些内容才是你最终的关注点。

5、做出可衡量的贡献:任何时候,如有可能,我们都应该尽量避免主观描述KR,KR要能精确地指出它的达成对业务究竟有多大的促进作用。

6、促进组织成长:判断OKR成功与否的最终标准,还是要用结果说话,看你的目标所取得的实际成果如何。

阅读全文 »

什么是灰度发布,灰度测试

发表于 2019-07-30 | 分类于 awsome | | 阅读次数:

什么是灰度发布?

灰度发布,又名金丝雀发布,或者灰度测试,是指在黑与白之间能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。

灰度发布是对某一产品的发布逐步扩大使用群体范围,也叫灰度放量。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。

灰度发布的意义

灰度发布能及早获得用户的意见反馈,完善产品功能,提升产品质量,让用户参与产品测试,加强与用户互动,降低产品升级所影响的用户范围。

灰度发布步骤

  1. 定义目标
  2. 选定策略:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等
  3. 筛选用户:包括用户特征、用户数量、用户常用功能、用户范围等
  4. 部署系统:部署新系统、部署用户行为分析系统(web analytics)、设定分流规则、运营数据分析、分流规则微调
  5. 发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表
  6. 产品完善
  7. 新一轮灰度发布或完整发布
阅读全文 »

java.lang.ClassNotFoundException:"org.apache.http.ProtocolVersion"

发表于 2019-07-26 | 分类于 Android , Exception | | 阅读次数:

运行项目遇到以下问题:

Caused by: java.lang.ClassNotFoundException: Didn’t find class “org.apache.http.ProtocolVersion” on path: DexPathList[[zip file “/data/user_de/0/com.google.android.gms/app_chimera/m/00000043/MapsDynamite.apk”],nativeLibraryDirectories=[/data/user_de/0/com.google.android.gms/app_chimera/m/00000043/MapsDynamite.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]

解决方案:

1.在清单文件增加代码:

1
2
<application
android:usesCleartextTraffic="true">

2.在清单文件清单再加一句代码:

1
2
3
4
5
6
 <application
android:usesCleartextTraffic="true">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
</application>

好了,重新运行解决了.
最根本的做法是使用https进行接口访问,毕竟涉及数据的安全性。当然了,这需要服务器的支持。还有第三方sdk,也需要使用https。

阅读全文 »

GoogleMap使用介绍

发表于 2019-07-25 | 分类于 Android , Map | | 阅读次数:

概述

通过本文,你可以知道如何使用 GoogleMap 相关 API、定位当前位置、获取当前所在城市、获取当前位置附近的地点、导航、地点搜索等内容。大致内容,可以查看如下思维导图。

阅读全文 »

最新Android框架排行榜,上百项资源汇总不容错过

发表于 2019-07-22 | 分类于 Android , 框架 | | 阅读次数:

Android框架排行榜

1.Retrofit  

一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言

上榜理由:Retrofit以21.8k的stars量雄踞github中android子标题榜首,第一当之无愧。

  • 官网地址:http://square.github.io/retrofit/
  • github:https://github.com/square/retrofit
  • 作者:square团队
使用:
1
compile 'com.squareup.retrofit2:retrofit:2.3.0'
2.okhttp

一句话介绍:okhttp是一款基于HTTP和HTTP2.0协议的网络框架,服务于java和android客户端

上榜理由,okhttp以20.4k的stars量雄踞github中android子标题第二名。大型公司比如淘宝也封装的是okhttp。Retrofit2.0开始内置okhttp框架,Retrofit专注封装接口完成业务需求,okhttp专注网络请求的安全高效,笔者将两者区分开,是想让后来学习者知道,这是两套框架,学习框架原理时可以分开学习,以免理解混乱。

  • 官网地址:http://square.github.io/okhttp/
  • github:https://github.com/square/okhttp
  • 作者:square团队
使用:
1
compile 'com.squareup.okhttp3:okhttp:3.9.1'
阅读全文 »

Android面试总结

发表于 2019-07-10 | 分类于 Android , 面试 | | 阅读次数:

面试大纲

  • java基础、面向对象、集合、线程使用;
  • Android 机型适配、SDK适配、内存优化、内存溢出、内存泄漏;
  • MVC/MVP/MVVM的使用场景;
  • 了解并能使用最新流行开源库RXjava+Retrofit+OKHttp、Glide、EventBus等;
  • JNI及NDK的使用、熟悉Framework。
阅读全文 »

Android面试题集

发表于 2019-07-02 | 分类于 Android , 面试 | | 阅读次数:

Java部分
Android部分
数据结构与算法部分
常用的开源库部分
计算机网络认识

阅读全文 »

Android知识间记,快速回顾各种知识

发表于 2019-07-01 | 分类于 Android , 面试 | | 阅读次数:

目录:

  • 网络

  • Java 基础&容器&同步&设计模式

  • Java 虚拟机&内存结构&GC&类加载&四种引用&动态代理

  • Android 基础&性能优化&Framwork

  • Android 模块化&热修复&热更新&打包&混淆&压缩

  • 音视频&FFmpeg&播放器

阅读全文 »
1…131415…38
ZhangMiao

ZhangMiao

Android/Flutter Developer

379 日志
58 分类
143 标签
RSS
E-Mail QQ Github StackOverflow
友情链接
  • Kaisir
  • Liujianhui
  • Leo
  • Hongyang
  • Liuwangshu
  • Jspang
  • Blankj
  • WuXiaoLong
  • Molunerfinn
  • Ofind
  • Gcssloop
© 2024 ZhangMiao
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
本站访客数 人次 本站总访问量 次