全部 文章 问答 分享 共找到21个相关内容
[文章] 关于阳光沙滩VIP会员购买要求
遇到的问题没有时间写毕业设计,没有时间是个人的事情直接使用源码来完成作业白嫖党,鼠标垫也送给你了,钱也退给你了,资料你也转载了购买要求注册时间要求1个月(以30天计算)以上,不符合此要求的,没有资格购买
[文章] MMKV 使用简介 GitHub 转载
MMKV——基于mmap的高性能通用key-value组件MMKV是基于mmap内存映射的key-value组件,底层序列化/反序列化使用protobuf实现,性能高,稳定性强。从2015年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到Android/macOS/Win32/POSIX平台,一并开源。MMKV源起在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的crash,参考文章,文章里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。在会话列表、会话界面等有大量cell的地方,希望新加的计时器不会影响滑动性能;另外这些计数器还要永久存储下来——因为闪退随时可能发生。这就需要一个性能非常高的通用key-value存储组件,我们考察了SharedPreferences、NSUserDefaults、SQLite等常见组件,发现都没能满足如此苛刻的性能要求。考虑到这个防crash方案最主要的诉求还是实时写入,而mmap内存映射文件刚好满足这种需求,我们尝试通过它来实现一套key-value组件。MMKV原理内存准备通过mmap内存映射文件,提供一段可供随时写入的内存块,App只管往里面写数据,由操作系统负责将内存回写到文件,不必担心crash导致数据丢失。数据组织数据序列化方面我们选用protobuf协议,pb在性能和空间占用上都有不错的表现。写入优化考虑到主要使用场景是频繁地进行写入更新,我们需要有增量更新的能力。我们考虑将增量kv对象序列化后,append到内存末尾。空间增长使用append实现增量更新带来了一个新的问题,就是不断append的话,文件大小会增长得不可控。我们需要在性能和空间上做个折中。更详细的设计原理参考MMKV原理。Android指南安装引入推荐使用Maven:dependencies{implementation'com.tencent:mmkv:1.2.14'//replace"1.2.14"withanyavailableversion}从v1.2.8起,MMKV迁移到MavenCentral。更多安装指引参考AndroidSetup。快速上手MMKV的使用非常简单,所有变更立马生效,无需调用sync、apply。在App启动时初始化MMKV,设定MMKV的根目录(files/mmkv/),例如在Application里:publicvoidonCreate(){super.onCreate();StringrootDir=MMKV.initialize(this);System.out.println("mmkvroot:"+rootDir);//……}MMKV提供一个全局的实例,可以直接使用:importcom.tencent.mmkv.MMKV;//……MMKVkv=MMKV.defaultMMKV();kv.encode("bool",true);booleanbValue=kv.decodeBool("bool");kv.encode("int",Integer.MIN_VALUE);intiValue=kv.decodeInt("int");kv.encode("string","Hellofrommmkv");Stringstr=kv.decodeString("string");MMKV支持多进程访问,更详细的用法参考AndroidTutorial。性能对比循环写入随机的int1k次,我们有如下性能对比:更详细的性能对比参考AndroidBenchmark。iOS/macOS指南安装引入推荐使用CocoaPods:安装CocoaPods;打开命令行,cd到你的项目工程目录,输入podrepoupdate让CocoaPods感知最新的MMKV版本;打开Podfile,添加pod'MMKV'到你的apptarget里面;在命令行输入podinstall;用Xcode打开由CocoaPods自动生成的.xcworkspace文件;添加头文件#import<MMKV/MMKV.h>,就可以愉快地开始你的MMKV之旅了。更多安装指引参考iOS/macOSSetup。快速上手MMKV的使用非常简单,无需任何配置,所有变更立马生效,无需调用synchronize。在App启动时初始化MMKV(设定MMKV的根目录),例如在-[MyAppapplication:didFinishLaunchingWithOptions:]里:(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{//initMMKVinthemainthread[MMKVinitializeMMKV:nil];//...returnYES;}MMKV提供一个全局的实例,可以直接使用:MMKV*mmkv=[MMKVdefaultMMKV];[mmkvsetBool:YESforKey:@"bool"];BOOLbValue=[mmkvgetBoolForKey:@"bool"];[mmkvsetInt32:-1024forKey:@"int32"];int32_tiValue=[mmkvgetInt32ForKey:@"int32"];[mmkvsetString:@"hello,mmkv"forKey:@"string"];NSString*str=[mmkvgetStringForKey:@"string"];MMKV支持多进程访问,更详细的用法参考iOS/macOSTutorial。性能对比循环写入随机的int1w次,我们有如下性能对比:更详细的性能对比参考iOS/macOSBenchmark。Win32指南安装引入推荐使用子工程:获取MMKV源码:gitclonehttps://github.com/Tencent/MMKV.git添加工程Win32/MMKV/MMKV.vcxproj到你的项目里;设置你的主工程依赖于MMKV工程;添加目录$(OutDir)include到你主工程的C/C++->常规->附加包含目录;添加目录$(OutDir)到你主工程的链接器->常规->附加库目录;添加MMKV.lib到你主工程的链接器->输入->附加依赖项;添加头文件#include<MMKV/MMKV.h>,就可以愉快地开始你的MMKV之旅了。注意:MMKV默认使用MT/MTd运行时库来编译,如果你发现主工程的配置不一样,请修改MMKV的配置再编译;MMKV使用VisualStudio2017开发,如果你在使用其他版本的VisualStudio,请修改MMKV的工具集与主工程一致,再编译.更多安装指引参考Win32Setup。快速上手MMKV的使用非常简单,所有变更立马生效,无需调用save、sync。在App启动时初始化MMKV,设定MMKV的根目录,例如在main()里:#include<MMKV/MMKV.h>intmain(){std::wstringrootDir=getYourAppDocumentDir();MMKV::initializeMMKV(rootDir);//...}MMKV提供一个全局的实例,可以直接使用:autommkv=MMKV::defaultMMKV();mmkv->set(true,"bool");std::cout<<"bool="<<mmkv->getBool("bool")<<std::endl;mmkv->set(1024,"int32");std::cout<<"int32="<<mmkv->getInt32("int32")<<std::endl;mmkv->set("Hello,MMKVforWin32","string");std::stringresult;mmkv->getString("string",result);std::cout<<"string="<<result<<std::endl;MMKV支持多进程访问,更详细的用法参考Win32Tutorial。POSIX指南安装引入推荐使用CMake:获取MMKV源码:gitclonehttps://github.com/Tencent/MMKV.git打开你项目的CMakeLists.txt,添加这几行:add_subdirectory(mmkv/POSIX/srcmmkv)target_link_libraries(MyAppmmkv)添加头文件#include"MMKV.h",就可以愉快地开始你的MMKV之旅了。更多安装指引参考POSIXSetup。快速上手MMKV的使用非常简单,所有变更立马生效,无需调用save、sync。在App启动时初始化MMKV,设定MMKV的根目录,例如在main()里:#include"MMKV.h"intmain(){std::stringrootDir=getYourAppDocumentDir();MMKV::initializeMMKV(rootDir);//...}MMKV提供一个全局的实例,可以直接使用:autommkv=MMKV::defaultMMKV();mmkv->set(true,"bool");std::cout<<"bool="<<mmkv->getBool("bool")<<std::endl;mmkv->set(1024,"int32");std::cout<<"int32="<<mmkv->getInt32("int32")<<std::endl;mmkv->set("Hello,MMKVforWin32","string");std::stringresult;mmkv->getString("string",result);std::cout<<"string="<<result<<std::endl;MMKV支持多进程访问,更详细的用法参考POSIXTutorial。LicenseMMKV以BSD3-Clause证书开源,详情参见LICENSE.TXT。版本历史具体版本历史请参看CHANGELOG.md。参与贡献如果你有兴趣参与贡献,可以参考CONTRIBUTING.md。腾讯开源激励计划鼓励开发者的参与和贡献,期待你的加入。为了明确我们对参与者的期望,MMKV采用了被广泛使用的、由ContributorCovenant所定义的行为准则。我们认为它很好地阐明了我们的价值观。有关更多信息请查看CodeofConduct。原文章地址https://github.com/Tencent/MMKV/blob/master/README_CN.md
2022-10-27 14:05 · android
[文章] 最近B站一个同学问我XXX视频是否有授权,于是
转载课程视频就算了,竟然转载真人视频,不是已经声明了未经允许,不得转载么?好气哦!我没有抖音,发给了同学们才知道是广告,怎么可以这样子哦!感谢同学们告诉我,也举报了,感谢感谢。
2021-02-26 21:44 · 日常 / 程序员 / 拉大锯 / 天气 / 人生
[文章] 动态规划 -- 简单入门
商业转载请联系官方授权,非商业转载请注明出处。
2022-08-05 11:21 · 算法
[文章] 安卓扫码功能的实现
转载自https://blog.csdn.net/suyimin2010/article/details/93382605第一次在网上写笔记文章,凑合着看哈!测试了下可以使用,跟着文章流程走就可以了。
2020-03-26 22:24 · 安卓扫码
[文章] IDEA中LomBok插件的使用
IDEA中LomBok插件的使用允许转载至阳光沙滩微信公众号一、简介lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,简单来说,比如我们新建了一个类
2020-07-06 16:38 · java / idea / lombok
[问答] 安卓开发如何实现应用开机自启动
商业转载请联系作者获得授权,非商业转载请注明出处。

2022-03-12 09:30 · 安卓
[文章] AOSP日记,修改分辨率,修改dpi,全屏禁止下拉拖出状态栏
把自己倒腾的东西记录下来,可以看,请不要转载。全屏的时候,禁止顶部划出状态栏要达到这个效果,就是禁止掉从上往下滑动的代码,这个是全局的。
2019-10-18 21:13 · asop / 系统移植 / 安卓系统 / 系统定制 / 安卓
[文章] 回调地狱的终结者 - 普通回调改写为挂起函数
hashasAllowancesis$hasAllowances")}//等待协程执行完毕Thread.sleep(10_000L)}测试结果欢迎同学们点赞、评论、打赏+关注啦~首发于阳光沙滩,允许转载
2021-09-04 12:04 · android / kotlin / 回调 / 协程 / 挂起函数
[文章] Android开发中如何读取meta-data里内容呢?
好啦,关于meta-data的获取就说到这里吧,欢迎转载并注明出处!
[文章] 面试题:一个有名的按摩师会收到源源不断的预约请求
商业转载请联系官方授权,非商业转载请注明出处。
2020-04-25 10:54 · 算法 / java / 面试题 / javascript
[文章] App内部亮度调节方案分析
版权声明:转载请务必注明作者与原文链接引言注意标题,是“App内部亮度调节”而非“系统亮度”或是“当前window亮度”Android官方仅提供了“系统亮度”和“当前window亮度”的调节接口,这时我们该如何实现上述效果呢
2020-01-31 11:49 · Android / 亮度调节 / 护眼模式
[文章] 一文教你如何在vue-cli脚手架中使用less,scss,stylus
2、在组件中使用less的全局变量如图所示二、后记这是less的引入,scss,stylus的引入步骤基本一致,只需把依赖名称改成对应的即可,创作不易,转载记得标注原地址,本是人间红尘客。
2021-08-22 09:13 · less / vue / vuecli
[文章] 27、Android开发基础之Activity的横竖屏生命周期补充
感谢你的学习,欢迎分享转载,请注明出处哦!
2019-10-22 12:52 · android / activity / 生命周期 / 安卓开发 / app
[文章] 从零开始实现SnakeLayoutManager(原创)
如果觉得本文不错,点个赞再走呗~允许转载至《阳光沙滩》微信公众号,其他转载请联系:2695734816@qq.com
2020-07-06 10:17 · 自定义控件 / 安卓
[文章] 10分钟快速搭建个人博客
config.inc.php文件添加以下配置/*gravatal源*/define('__TYPECHO_GRAVATAR_PREFIX__','https://cdn.v2ex.com/gravatar/');```转载来源
2022-07-24 00:56 · 建站 / 博客 / docker / typecho
[文章] 我的大三春招实习生面试经历(填坑)
(仅限于阳光沙滩:不允许转载),..有没有用呢。
1970-01-01 00:00 · 面试体验
[文章] vue封装的评论列表以及回复组件
传递到子组件,用于判断是否是同一个账户this.currentCommentId=id},}}</script>写到最后这只是本人在闲暇之余瞎写的一篇博文,如果有不好的地方请谅解,创作不易,转载需通过联系本人
2021-09-05 09:11 · vue评论展示 / vue回复组件
[文章] Linux基础学习2
写在前面本文紧接上文:Linux基础学习1声明:本人允许任何形式的转载(虽然不一定有人会转)Linux文件目录命令显示当前shellCWD(currentworkdirectory当前工作目录)的绝对路径
2020-07-29 14:54 · Linux / 基础
[文章] Ubuntu22.04.3 AOSP的下载与编译
hl=zh-cn打开虚拟机中的硬件加速功能虚拟机->设置->处理器->虚拟化引擎->虚拟化IntelVT-X/EPT或AMD-V/RVI转载文章【视频文稿】车载Android应用开发与分析
2023-10-17 23:37 · aosp / Ubuntu / Android
  • 1