
Android
文章平均质量分 78
沙漠绿州
行动胜于言辞,每天坚持学习成长一点点
展开
-
如何解决启动系统设置页面无法回调onActivityResult的问题
onActivityResult() 在 onResume() 之前调用是 Android 系统设计的合理行为,确保数据在界面恢复前处理完毕。为了避免在 onResume() 中直接依赖 onActivityResult() 的数据,应通过标志位或直接处理你的业务来解决时序问题。最后在 onResume 或通过 ActivityResultLauncher 的回调中主动检测并再次校验你的业务代码来解决此类问题;原创 2025-03-09 11:36:35 · 994 阅读 · 0 评论 -
Android ObjectBox数据库使用与集成指南
ObjectBox是一个跨平台的经量级数据库,一般有这几种使用场景:⓵移动应用:高频读写的本地缓存(如聊天记录、日志);⓶IoT 设备:传感器数据的快速存储和查询;⓷嵌入式系统:资源受限环境下的持久化存储;⓸实时数据分析:需要低延迟读写的场景;前面我们介绍过《Android Realm数据库使用与集成指南》但好像从各种指标上来看都没有ObjectBox好,个人也是推荐使用ObjectBox作为终端存储数据库的;原创 2025-02-26 16:40:40 · 1224 阅读 · 0 评论 -
Android Realm数据库使用与集成指南
Realm 是一款专为移动端和嵌入式场景设计的高性能、跨平台的 对象数据库(NoSQL),由 MongoDB 团队维护。它的核心思想是将数据模型直接映射到对象(如 Java/Kotlin、Swift 等语言中的类),开发者无需编写复杂的 SQL 语句或 ORM 代码即可高效操作数据。原创 2025-02-25 16:15:45 · 1167 阅读 · 0 评论 -
Android MMKV集成指南
MMKV 是腾讯开源的一款专为移动端设计的高性能键值存储组件,旨在替代传统的 SharedPreferences 和 SQLite,尤其在频繁读写和数据安全性要求高的场景下表现优异。基于mmap内存映射将文件直接映射到内存,省去传统 I/O 的数据拷贝步骤,读写操作直接操作内存,大幅提升性能。通过系统内核确保数据持久化,即使应用崩溃也能保证数据一致性。编码模式使用 Protobuf 进行序列化/反序列化,数据体积更小,解析速度更快,适合移动端资源受限环境。原创 2025-02-25 13:09:15 · 816 阅读 · 0 评论 -
Android数据库SQLite、Room、Realm、MMKV/DataStore、ObjectBox性能比较
默认选择:Room(官方维护、开发高效、生态完善)。高性能需求:ObjectBox(本地 NoSQL 王者)或 Realm(跨平台)。简单键值对:MMKV(性能极致)或 DataStore(协程集成)。历史项目/底层控制:SQLite(灵活但需手动优化)。个人一般会选择MMKV、Realm、ObjectBos,因为这三个库的读写相对都还不错。原创 2025-02-25 11:48:32 · 980 阅读 · 0 评论 -
一文搞懂Android应用元素查看器(Appium+Appium-inspector)——定位微信布局元素
Appium 是一个开源的自动化测试工具,它支持多种语言和平台,用于移动应用(包括原生、混合和Web应用程序)的自动化测试。Appium 通过客户端和服务器架构,接收客户端请求,并使用WebDriver协议与移动设备进行通信,执行测试脚本所需的操作。Appium 使用的WebDriver协议是基于Selenium WebDriver的,它定义了一个服务端/客户端协议(也称为JSON Wire Protocol),使得使用任何语言编写的客户端都可以向服务端发送请求。而Appium Inspector 是 A原创 2025-02-18 00:08:29 · 1110 阅读 · 0 评论 -
Android逆向之旅---SO(ELF)文件格式详解
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。转载 2016-05-28 14:41:00 · 2407 阅读 · 0 评论 -
H5页面在原生WebView中渲染适配问题(一)
html在WebView中存在各种适配情况:比如标签宽度、图片大小、字体大小等。本节我们就先讲讲由这些尺寸导致的适配;对于SDK版本兼容适配、安全性适配以及结合路由与前端交互适配,在后续的文章中会发出;标签和图片适配我们先来确定几个问题以及在手机端上为什么要做这样的适配1. 对于容器标签如果超过屏幕宽度可能会出现左右滚动;2. 虽然容器标签比较正常,但其内部标签强制设置的宽度超过屏幕宽度...原创 2019-04-21 23:21:46 · 2997 阅读 · 0 评论 -
Android自定义圆角ImageView 支持网络图片
先看下效果图 我们再来看一张优快云的圆角图片 从布局可以看出csdn app 的头像也是圆角的Image,但可以看到,有明显的毛刺感,不知道是csdn 程序员的疏忽还是 我手机的问题,本人手机(小米note)。不知道其他的小伙伴显示效果也是这样。转载 2016-06-07 19:33:19 · 448 阅读 · 0 评论 -
android学习路线图
转载 2016-05-06 13:14:25 · 378 阅读 · 0 评论 -
Android插件化原理解析——概要
2015年是Android插件化技术突飞猛进的一年,随着业务的发展各大厂商都碰到了Android Native平台的瓶颈:从技术上讲,业务逻辑的复杂导致代码量急剧膨胀,各大厂商陆续出到65535方法数的天花板;同时,运营为王的时代对于模块热更新提出了更高的要求。在业务层面上,功能模块的解耦以及维护团队的分离也是大势所趋;各个团队维护着同一个App的不同模块,如果每个模块升级新功能都需要对整个app进行升级,那么发布流程不仅复杂而且效率低下;在讲究小步快跑和持续迭代的移动互联网必将遭到淘汰。转载 2016-05-12 22:07:36 · 448 阅读 · 0 评论 -
Android编程规范
(1)每个公司,每个部门,每个团队都喜欢搞一套编程规范,初衷很美好,然而定出来的东西从来都没人看。道理很简单,既然是编程规范,凭啥你定的就叫规范,依据是什么?此其一。其二,那动辄几十页上百页的编程规范,到底是写规范还是写散文议论文说明文?(2)当你们团队在制定编程规范的时候是怎么做的?定个三天时间,大纲划分好,每人分走一块,各自开始百度谷歌,最后合并在一起,然后经过两三次check,期间互相撕转载 2016-04-28 12:59:35 · 445 阅读 · 0 评论 -
Android FrameLayout的android:foreground属性可以设置单击时的前景色
触摸之后,设置前景色,可以告诉用户确实单击了,增加用户体验。这样,touch事件触发的时候,就会有前景色了参考资料:Android FrameLayout的android:foreground属性可以设置单击时的前景色——http://blog.youkuaiyun.com/jdsjlzx/article/details/13827993转载 2016-05-06 18:49:59 · 1753 阅读 · 0 评论 -
MVP+Dagger2+Retrofit实现更清晰的架构
这个架构已经有不少文章介绍了,今天打算自己实践下。MVP概念不多说了 相关介绍已经很多了Dagger2:依赖注入框架,用来解决依赖 除了基本依赖 mvp的V–>P–>M的之间依赖也轻松解决 方便不少Retrofit:用来解决M的RestApi数据获取, 天然支持Rxjava 不过这里我没用到Rxjava 其自带的Callback已经足够用了估计这个架构的难点在于Da转载 2016-05-03 09:46:43 · 490 阅读 · 0 评论 -
android 分辨率标题栏及状态栏高度
Android屏幕密度(Density)和分辨率的解释操作系统 2010-11-17 09:25:58 阅读128 评论0 字号:大中小 订阅 HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120 density值表示每英寸有多少个显示点,与分辨率是两个概念。 不同density下屏幕 分辨率信转载 2016-04-28 11:25:47 · 523 阅读 · 0 评论 -
Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
首先提下ButterKnifey已经更新到版本7.0.1了,现在注解已经不叫@InjectView了,而叫@Bind,感觉更贴合语义。同时注册的方式也从ButterKnife.inject(this);变成了ButterKnife.bind(this);关于7.0.1的ButterKnife的各种用法和功能,可以参考ButterKnife的github上的主转载 2016-05-20 19:04:36 · 529 阅读 · 0 评论 -
安卓TV,ViewPager的setCurrentItem跳转到指定item,界面数据没有刷新(空白)的问题
关于ViewPager的setCurrentItem跳转到指定item,如果两个item相隔个数大于缓存个数,界面数据没有刷新(空白)的问题。分析,如果一页一页的滑动,不存在加载不出数据信息的,直接调用setCurrentItem滑动到相邻页也不会有问题。setCurrentItem(item, true)方法后面还有一个参数,表示是否平滑的划过去,如果是true,会一页一页的滑到指定页,不是我...转载 2019-11-11 05:50:20 · 898 阅读 · 0 评论 -
Android NDK、cygwin安装及通过示例导出so库
Android NDK、cygwin安装及通过示例导出so库原创 2016-05-24 06:41:25 · 643 阅读 · 0 评论 -
Android HDecoration项目so库导出和调用
Android HDecoration项目so库导出和调用原创 2016-05-11 10:58:51 · 454 阅读 · 0 评论 -
RxJava 详解for Android
前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: R转载 2016-05-03 14:13:57 · 729 阅读 · 0 评论 -
安卓ADT项目及升级AS(Android Studio)全攻略
ADT项目(即原Eclipse开发环境下项目)打包、签名、混淆配置Eclipse项目升级至AS项目及升级过程遇到问题原创 2016-05-06 10:35:20 · 2342 阅读 · 0 评论 -
Android BaseWebLoad组件使用及与js方法互调
Android BaseWebLoad组件使用及与js方法互调原创 2016-05-06 18:52:35 · 285 阅读 · 0 评论 -
Java 或 Android属性生成工具
Java 或 Android属性生成工具原创 2016-07-30 15:54:43 · 504 阅读 · 0 评论 -
RxEBus——Android事件总线消息接收与通知插件,支持进程和线程通信
一个轻量级IPC通信框架; /EBus进程内与进程间通信包括实现原理可下午demo查看/主要功能和特点: 1.支持跨页面通信;2.支持进程(process)和线程(thread)通信;3.根据指定的receivekey分发消息机制;4.消息发送与接收参数支持无限个;5.支持跨应用通信;引用需要接收消息位置注册EBus1.项目build.gradle引用仓库地址...原创 2019-01-05 20:56:09 · 590 阅读 · 0 评论 -
Android HiBernate实体表单验证插件;利用对象属性注解,可调属性验证顺序;相对属性比较等功能;
版本功能描述1.0.0可调整属性验证顺序;【@Order(序列)】非空验证; 【@NotEmpty(message = "提示信息")】长度验证;【@Length(min = 3, max = 10, message = "长度在3~10之间")】最小值验证;【@Min(value = 1, message = "提原创 2019-01-07 14:03:26 · 184 阅读 · 0 评论 -
Android单线程、多线程、任务队列实现
描述实际项目开发中会把部分业务放入线程中执行;第一反应想到的是Thread,那么是直接new Thread()吗?当然不是,Thread从创建到销毁它有生存周期;需要用ThreadPoolExecutor和ScheduledThreadPoolExecutor线程池执行器来管理和创建线程队列;创建ScheduledThreadPoolExecutor线程池/** * 初始化线程池 * ...原创 2019-01-07 20:37:11 · 2591 阅读 · 1 评论 -
Android日志管理工具——Logger
安卓开发记录关键日志记录;可单独使用也可配合RxQuickly框架使用;调用方式用Logger.L.error(String message);Logger.L.error(String... messages);Logger.L.error(Integer tags, String... messages);Logger.L.error(String message, Throwabl...原创 2019-01-09 16:13:44 · 1148 阅读 · 0 评论 -
常用数据结构比较
元素 elements实现方式 implementation插入速度 put speed删除速度 delete speed顺序 order特性 features扩容因子 factor描述 describeArrayList数组慢慢有序可存放重复元素0.5非线程安全,读取快LinkedList链表快快有序prev,next0.5只需要...原创 2019-04-06 13:28:04 · 269 阅读 · 0 评论 -
Android http 请求——AsyncHttpClient集成【解决重定向问题、setEnableRedirects 方法异常、线程中调用异常问题】
Android http 请求——AsyncHttpClient集成【解决重定向问题、setEnableRedirects 方法异常、线程中调用异常问题】原创 2016-04-28 15:20:56 · 1708 阅读 · 0 评论