- 博客(22)
- 收藏
- 关注
原创 HarmonyOS:数据持久化(一):用户首选项
Prefereces的实例可以通过上下文Context和文件名获取,该文件名是数据存储在本地文件的文件命名,该文件存储在应用沙箱内部(路径:context.getApplicationContext().preferencesDir)。2,Key的数据类型是string,value的数据类型支持:number,string,boolean,Array<string>,Array<number>,Array<boolean>,Uint8Array,object,bigint。调用flush()。
2025-04-10 16:12:00
487
原创 HarmonyOS:EventHub-事件中心
EventHub 类似Android中的EventBus ,可用于事件传递,提供了订阅,取消订阅,触发事件的能力。但是EventHub不是全局的事件中心,事件的订阅,取消和触发都作用在某一个具体的EventHub对象上。所以在回调函数onEvent()中 this.value中的this指的是EventHub对象,而在EventHub对象中没有value值,所以打印出的值是undefind。callback:取消指定事件的订阅 ,不传时取消事件key下所有的事件订阅。
2025-04-10 16:09:46
418
原创 HarmonyOS:HMPermission权限请求框架
HMPermission 是鸿蒙系统上的一款权限请求框架,封装了权限请求逻辑,采用链式调用的方式请求权限,简化了权限请求的代码。申请权限时,会主动校验该权限是否已授权,所以无需再校验是否已授权。- abilities:使用权限的UIAbility或者ExtensionAbility组件的名称。注意:已在子模块中申请的权限,无需在主项目重复添加,权限将在整个应用生效。说明:申请的权限是user_grant 权限时必填,并且需要做多语言适配。permission()方法传入权限数组,支持批量申请权限;
2025-04-10 16:07:27
405
原创 鸿蒙开发:本地库导包路径异常引起的crash
Util工具类在本地库utils下,经过全局搜索,多个类在使用Util工具时导包路径用的是:utils/src/main/ets/utils/Util。这个导包路径应该是使用IDE快捷键自动生成的,之前导包是没有问题的,最近的一次打包上架不行了。产生的原因是找不到utils/src/main/ets/utils/Util 这个路径。App 在上架应用市场时,因启动报错被驳回。建议将原导包删除根据IDE提示重新导包。
2025-03-17 14:53:23
303
原创 鸿蒙开发:使用无线调试连接真机
如果报错"command not found: hdc",说明电脑端还没有配置hdc环境变量。若报错:Failed to get the device apiVersion. 尝试关闭"无线调试" 开关重新打开,更换端口号重新连接。i. 在DevEco Studio 的"Terminal" 窗口输入"hdc -v" ,返回具体版本信息,则环境变量配置成功了。中,添加HDC端口变量名为:HDC_SERVER_PORT,变量值可设置为任意未被占用的端口,如7035。键,退出编辑模式,然后输入“:wq”,单击。
2025-03-17 14:08:11
836
原创 Git clone 大文件时报错:Out of memory
Git在clone远程大文件时,报错Out of memory。意思是说clone的文件太大了,超出了限制,具体错误如下:remote: Counting objects: 13847, done.remote: error: Out of memory, malloc failed (tried to allocate 168827801 bytes)remote: error: fa...
2018-11-15 15:14:26
10992
1
转载 分享一个MAC下避开百度网盘限速下载的方法,三步操作永久生效
感谢博主Oliver556的分享。原博客地址:https://blog.youkuaiyun.com/weixin_40137911/article/details/79984110相信大家都比较困惑,百度网盘客户端限速后一般只有几十K的下载速度,Windows有百度网盘破解版,但MAC的破解版似乎不存在,要提速的话,一般的做法是开超级会员(27元/月),身为程序员的我们,是不是有更黑科技一点的方法呢...
2018-09-26 14:45:05
12469
1
原创 Android 单例模式几种写法及优缺点
总结一波单例设计模式的几种写法以及各自存在的优缺点。1,饿汉式顾名思义,实例对象早早的就创建出来了。这种方式在类加载的时候就完成了初始化,所以类加载过程比较缓慢,但是在使用过程中获取实例对象的速度比较快,也因为这种方式是基于类加载机制的,所以避免了多线程的同步问题。public class SingleTon { private static SingleTon insta...
2018-08-07 23:50:04
1303
原创 Android 8.0适配之Notification
上一篇博客介绍了8.0系统中的应用图标适配,还不了解的可以看一下8.0 应用图标适配。这篇博客主要介绍Android 8.0系统之后的Notificatioin,这也是8.0适配中的重要部分Android 8.0 系统之后,Google推出了通知渠道的概念。那什么是通知渠道尼?通知渠道是开发人员在创建通知的时候为每个通知指定的渠道,你也可以理解成是通知类型。属于同一通知渠道的通知可以进行统...
2018-08-01 22:25:32
1135
原创 Android 8.0适配之应用图标适配
前言:Android 8.0系统出来这么久了,也是时候来适配一下了。8.0 系统修改的地方挺多的,但是需要我们程序猿开发适配的倒不是很多。这篇博客主要介绍8.0系统适配中的应用图标适配。在Android 7.1系统之前APP的应用图标都是mipmap中的静态图片android:icon="@mipmap/logo",7.1之后谷歌开始推广圆形图标,又添加了android:roundIcon="...
2018-07-26 23:03:39
4924
原创 Android 7.0 FileProvider踩过的坑
前言:下面记录两个在7.0系统之后使用FileProvider遇到的问题问题一:Error:C:***AndroidManifest.xml:352:13-62 Error: Attribute provider#android.support.v4.content.FileProvider@authorities value=(***.fileProvider) from Andro...
2018-07-25 21:55:03
12255
2
原创 Android 启动模拟器报错 :Incompatible HAX module version 3,requires minimum version 4
Android Studio在启动X86模拟器的时候报错:Incompatible HAX module version 3,requires minimum version 4解决方法:打开Setting ->Android SDK 勾选图中红框选项,下载安装完成即可。 ...
2018-07-25 21:52:59
2011
原创 Android 检测系统通知栏开关是否打开及跳转
前言:在做推送的时候,App应用中的消息推送开关已经打开了可是还是收不到推送。以为是权限问题,于是乎查看了一下与Notification相关的权限。诶,诶,诶,没有。但是可以检测系统通知的开关。在这里记录一下public class NotificationUtil { private static final String CHECK_OP_NO_THROW = "check...
2018-06-28 19:14:42
5190
原创 Android 消息机制: Handler,MessageQueue,Looper运行机制
前言:前面几篇博客介绍了Android消息机制中的三大成员Handler,MessageQueue,Looper。有心的小伙伴可能会发现,在介绍其中的一个成员的时候都会提及到其它的两个成员,确实是这样的,这三大成员本身就是一个整体。下面我们就来看一下这三大成员之间是如何巧妙地配合地。一,先上图上图是模拟了一个应用场景:在主线程中创建Handler,然后在子线程中发送消息。这是...
2018-05-29 22:55:49
298
原创 Android 消息机制之深入学习Handler
前言:前面几篇博客分析了消息机制大家庭中的MessageQueue,Looper。其中还有一个必不可少的成员--Handler。Handler在消息机制中的作用的发送消息。下面我们就来认识一下Handler。一,使用场景 Handler的实用场景算是老生常谈的问题了,说的较多的是,系统不允许在子线程中访问UI。为什么尼?主要还是因为Android的UI控件不是线程安全的,如果在多...
2018-05-29 22:55:11
228
原创 Android 消息机制之深入学习MessageQueue
一,简述 MessageQueue在Android中指消息队列,顾名思义就是存放消息的消息池,但是它的内部实现并不是队列而是一个单链表,可能是单链表的删除和插入比较有优势吧。MessageQueue的内部对消息的主要操作就是插入,读取删除,不具备处理消息的能力。二,源码分析1,重要属性信息介绍 // True if the message queue can be q...
2018-05-26 15:15:32
2289
原创 Android 消息机制之深入学习Looper
前言:Looper在Android的消息机制中扮演着消息循环的角色。具体点说就是Looper会不停的从MessageQueue中查看是否有新消息,如果有新消息就会立刻处理,没有就一直阻塞在那里。注意:一个线程有且只能有一个Looper,一个MessageQueue一,Looper的使用 class LooperThread: Thread() { override f...
2018-05-26 15:14:24
278
原创 ThreadLocal深入分析(Jdk 1.8)
一,前言 ThreadLocal对很多人来说会比较陌生,因为我们在平时开发中使用的并不是很多,但是在特定的情况下使用可以帮我们舍去很多的麻烦。这篇博客就是从简单使用到源码分析来介绍一下ThreadLocal。本篇博客的源码是基于Jdk1.8二,ThreadLocal的简单介绍 ThreadLocal是线程内部的数据存储类,我们可以使用ThreadLocal在指定...
2018-05-23 22:41:30
1540
1
原创 Android jenkins 自动化打包
前言:前段时间因项目需要捣拾了一下Jenkins自动化打包,过程中遇到了很多的坑,在此记录一下。因为这篇博客是之后写的,所以有些具体的坑就不能回显了。一,Jenkins的安装...
2018-05-15 14:16:33
4958
原创 调用Android系统自带相机拍照,从相册中获取图片(兼容7.0系统)
一,前言:在日常的手机应用开发过程中,经常会遇到上传图片的需求,像上传头像之类的,这就需要调用系统的相机,相册获取照片。但是在Android 系统7.0之后认为这种操作是不安全的,这篇文章主要就是记录7.0获取照片遇到的问题。 二,FileProvider介绍都说google官方文档是最好的学习资料,我也带着英语字典上来瞅了瞅。https://developer.android...
2018-05-10 18:07:48
5065
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人