随笔分类 - Android
摘要:个人博客 http://www.milovetingting.cn 前言 简单记录Mac下编译OpenCV,以便后续查看。 使用HomeBrew安装cmake brew install cmake 获取OpenCV源代码 官网地址:https://opencv.org/releases/ 选择Sou
阅读全文
摘要:个人博客 http://www.milovetingting.cn 下载Tesseract https://github.com/UB-Mannheim/tesseract/wiki 下载jTessBoxEditor https://sourceforge.net/projects/vietocr/
阅读全文
摘要:个人博客 http://www.milovetingting.cn 前言 在上一篇文章 Artifactory搭建本地仓库 中,已经搭建好了本地仓库,这一篇,主要介绍在Android Studio中通过Gradle上传AAR到本地仓库,以便其它项目引用。 上传AAR 在项目根目录下的gradle文件
阅读全文
摘要:个人博客 http://www.milovetingting.cn 前言 在上一篇文章 Artifactory搭建本地仓库 中,已经搭建好了本地仓库,这一篇,主要介绍在Android Studio中通过Gradle上传AAR到本地仓库,以便其它项目引用。 上传AAR 在项目根目录下的gradle文件
阅读全文
摘要:个人博客 http://www.milovetingting.cn 前言 简单记录集成阿里云HTTPDNS服务的过程 什么是HTTPDNS HTTPDNS是面向多端应用(移动端APP,PC客户端应用)的域名解析服务,具有域名防劫持、精准调度、实时解析生效的特性。 以上来自阿里云HTTPDNS文档。
阅读全文
摘要:个人博客 http://www.milovetingting.cn Android电量优化-Battery Historian环境搭建及简单使用 前言 在Android5.0后,Batterystats已经内置在Android系统中,用于收集设备上的电池数据。可以使用adb将收集的电池数据导出,并生
阅读全文
摘要:个人博客 http://www.milovetingting.cn Crash监控的简单实现方案 前言 本文从Java层及Native展开,简单记录Android中的Crash监控方案。 Java层Crash Java层的crash监控,可以通过实现Thread.UncaughtExceptionH
阅读全文
摘要:个人博客 http://www.milovetingting.cn KMM跨平台开发环境搭建 KMM是什么 KMM即Kotlin Multiplatform Mobile ,是由Jetbrains提供的跨平台移动开发SDK,借助 Kotlin的跨平台能力,可以使用一个工程为多个平台编译。 使用 KM
阅读全文
摘要:个人博客: http://www.milovetingting.cn 使用BinderPool管理AIDL 前言 平时我们用到AIDL,一般的流程可能是这样: 定义AIDL接口 定义服务,在onBind方法中返回实现了AIDL接口的Stub类的实例 调用bindService方法,在ServiceC
阅读全文
摘要:个人博客 http://www.milovetingting.cn Android自定义View-圆形图片控件 前言 在日常开发中,圆形的图片效果还是很常见的。可以通过给Paint设置Xfermode来实现,这里简单记录如下。 实现 实现圆形效果的核心是PorterDuffXfermode,对于Po
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" IntelliJ IDEA插件开发的简单流程 前言 平时用 开发项目时,我们都会或多或少接触到一些插件,这些插件能帮助我们提高开发效率。如果我们有一些特定的需求,但还没有插件可以满足这些需求,那么可以通过自定义插件来实现。 自定
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" IOC之运行时注入 实现Activity的布局注入+控件注入+事件绑定 前言 本文主要介绍基于 的设计原则,实现以下功能: 布局注入 控件注入 事件注入 其实这些功能,在之前也有零散地介绍过,这里再做一个统一的整理。 这里暂时不
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" 动态代理+注解+反射实现View的点击事件绑定 代理模式是给对象提供一个代理对象,由代理对象来控制原对象的引用。代理模式分为静态代理和动态代理。 静态代理 定义接口 定义具体的实现类 定义代理类 可以看到,具体的实现类和代理类都
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 WorkManager WorkManager是什么 可以轻松调度即使在应用退出或设备重启时仍应运行的可延迟异步任务,不适用于应用进程结束时能够安全终止的运行中的后台工作,也不适用于需要立即执行的任务。 简单
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 Paging Paging是什么 分页库可一次加载和显示一小块数据。按需载入部分数据会减少网络带宽和系统资源的使用量。 简单使用 引入Paging 在需要引入Paging模块的build.gradle中配置
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 Navigation Navigation是什么 Navigation翻译过来就是导航。 导航是指支持用户导航、进入和退出应用中不同内容片段的交互。Android Jetpack 的导航组件可帮助您实现导航,
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 Room Room是什么 Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制 以上内容来自官方文档。用一句话总结下:
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 DataBinding 简单使用 在需要使用DataBinding的模块的build.gradle中增加 然后同步 新建一个继承自 的类 在需要绑定的字段的 方法上增加 注解,在set方法里增加 build工
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 LiveData LiveData是什么 LiveData是一种可观察的数据存储器类,具有生命周期的感知能力。 简单使用 一般都是和ViewModel一起使用。定义一个类继承自 : 在这个类里定义 类型的属性
阅读全文
摘要:个人博客 "http://www.milovetingting.cn" Jetpack学习 Lifecycle Lifecycle是什么 Lifecycle是Jetpack提供的一个组件,可以感知Activity,Fragment的生命周期变化。 简单使用 定义一个类继承自LifecycleObse
阅读全文