- 博客(64)
- 收藏
- 关注
原创 HarmonyOS——认证服务开发
AGC平台提供了与项目绑定认证服务,可以让开发者更加轻松的进行应用的用户登录认证相关功能进行开发,在笔者之前进行华为账号登陆认证的时候,需要层层递进,访问三个华为官方的接口,才能拿到用户的唯一身份标识,并且还无法获取到该用户在华为绑定的账户信息,只能在自己的后台将用户数据与从官方获取到的用户唯一标识进行绑定,十分麻烦,如果要开发第三方账户的绑定便更加麻烦,最近学习并使用了AGC平台的登录认证开发模块,与传统方式相比简单快捷,并且该服务可以留存用户的基本信息,获取简单。
2024-12-15 21:17:30
873
原创 Harmony NEXT-越过相机读写权限上传图片至项目云存储中
在制作用户注册登录界面时想要实现用户头像上传共能,查询API文档,发现有picker和PhotoAccessHelper两个包可以选择使用,但是在使用PhotoAccessHelper包拉起相册并读入所选的照片后将该照片传入云存储中产生报错,需要相册读写权限,但是该权限是受限权限,不容易获取,查询API发现有使用picker包跳过该权限实现该功能的方法,但是代码粘进项目跑了一下,发现官方给的示例代码其实还是需要申请相册读写权限的,问题回到如何跳出相册读写权限。
2024-12-01 22:34:13
527
原创 鸿蒙开发——根据背景图片来构建特定颜色的蒙版
效果图如下(文字部分马赛克处理):最近突然发现网易云和QQ音乐这些图片上方的蒙版颜色不是固定的,而是跟着图片内容走的,想看看能不能在鸿蒙实现,最后凭借俺寻思之力寻思出了一套流程(有bug,有时候蒙版直接透明了,蒙版颜色数据是在的,就是不显示,希望是虚拟机的bug)
2024-11-24 22:14:59
377
原创 鸿蒙AVPlayer开发音乐播放器——重启读取历史播放进度
本来这个问题已经搁置了,然后在一次发呆乱点文件的时候看到了on('stateChange')中对象播放状态变化回调函数,想到能不能在play状态回调中判断一下,如果是刚重启(也就是缓存读取到了播放时间信息),就在这里跳转一下,很快啊,生效了!无视这个pause,只有在playing状态下才能暂停,但是这会导致重启app之后会播放一下在暂停,难顶。虽然我极力去忽视这个问题,但是这样实现重启应用后暂停会导致重启app之后会播放一下在暂停,难顶。只要思想歪,办法总比困难多!
2024-11-16 22:05:56
484
原创 操作系统-硬件结构
Cache Line是CPU从内存读取数据的基本单位,由Tag(标志)+数据块(Data Block)组成,CPU Cache由多个Cache Line组成,CPU Cache Line除了存放内存中加载的数据以外,还存放有效位,用来标记数据是否有效,若有效位为 0,无论是否有数据都会从内存重新加载。为了提升性能,需要使得CPU读取数据尽可能从CPU Cache中读取,少从内存中读取,产生何时需要将Cache中的数据写回内存的问题。CPU Cache Line的数据结构:索引,有效位,组标记,数据块。
2024-11-10 21:54:37
470
原创 使用AVPlayer进行音频播放开发基础设计
接下来展示音频读取函数的一个书写示例(这里只展示RawFile资源文件的读取方法,沙箱文件读取或通过网络连接获取的数据需另行获取)进行完初始化设置之后就可以将音频对象的各个状态进行监听并且能够进行相应的操作与更改,这里不多做展示。在使用AvPlayer进行设计之前,需要获取相应对象,后期围绕该对象展开操作。
2024-10-27 22:07:02
237
原创 TCP三握四挥
在TCP三次握手时Linux内核会维护两个队列半连接队列,也称SYN队列全连接队列,也称accept队列黑客会在短时间内伪造多个IP发送SYN请求给服务端,服务端会一一恢复ACK-SYN报文,进入SYN_RCVD状态,但是一直收不到客户端的ACK应答,久而久之,服务端的半连接队列就会被占满,使得服务端不能正常服务用户。
2024-10-13 19:05:37
1219
1
原创 HTTP1.1优化
可以从以下三个角度回答这三个问题:尽量避免发送HTTP请求在必须要发送请求时尽可能减少请求次数减小服务器的HTTP响应数据大小。
2024-09-29 17:39:17
646
原创 TCP/IP网络模型分层
综上所述,TCP/IP网络通常是由上到下分为4层,分别是应用层、传输层、网络层和网络接口层网络接口层的传输单位是帧(frame)IP层的传输单位是包(packet)TCP层的传输单位是段(segment)HTTP的传输单位则是消息或报文(message)但这些名词没有什么本质的区分,可以统称为数据包。
2024-09-15 17:26:00
1250
原创 MVVM模式
目前很多关于UI构造和更新的问题,都是由于ViewModel的设计并没有很好的支持自定义组件的渲染,或者试图去让自定义组件强行适配Model层,而中间没有用ViewModel来进行分离。虽然与强制将UI拟合到SQL数据库模式(MV模式)相比,MVVM的设计比较复杂,但应用程序开发人员可以通过ViewModl层的隔离,来简化UI的设计和实现,以此来收获更好的UI性能。在ViewModel被改变时,需要同步回Model层,这样才能保证ViewModelk和Model的一致性,即应用自身数据的一致性。
2024-08-04 20:37:26
462
原创 网络访问(Socket/WebSocket/HTTP)
HarmonyOS为用户提供了网络连接功能,具体由网络管理模块负责。通过该模块,用户可以进行Socket网络通滚、WebSocket连接、HTTP数据请求等网络通信服务。需要注意的是,在使用网络管理模块提供的网络数据通信服务之前,用户需要根据具体的使用情况,向系统获取相应的使用权限。
2024-07-23 14:50:24
1502
2
原创 ArkUI-动画
属性动画是通过设置组建的animation属性来给组件添加动画,当组件的width、height、Opacity、backgroundColor、scale、rotate、translate等属性变更时,可以实现渐变过渡效果。
2024-07-18 10:06:30
297
原创 ArkUI状态管理
State装饰器标记的数据不能在父子组件之间同步,如果需要在父子组件之间同步数据,则可以使用@Prop和@Link装饰器。不同于@State装饰器,@Prop和@Link装饰器可以通过手动设置数据传输来达成在父子组件之间的单向/双向数据传递。不同于前两个组件,@Provice装饰器与@Consume装饰器可以自动(隐式的)在父子组件之间传递数据。@Observed装饰器与@ObjectLink装饰器用于在涉及。3.嵌套类型以及数组中的对象属性无法触发视图更新。指驱动视图更新的数据(被装饰器标记的变量)
2024-07-16 16:59:41
728
原创 ArkUI自定义组件
在独立ets文件内自定义组件就涉及到模块化开发,需要使用export命令和import命令来实现模块的导入导出@Componentbuild() {//组件UI描述// UI描述@Component@component// UI描述全局自定义构建函数的定义时需要声明是function,而局部自定义构建函数不需要@Component@Componentbuild() {
2024-07-16 11:17:23
570
原创 ArkUI组件——循环控制/List
该函数用于设定列表方向,其中需要的参数为Axis枚举,通Row和Column一样,Vertical代表纵向排列,Horizontal代表横向排列。1.列表项ListItem数量过多超出屏幕后,会自动提供滚动功能。2.列表项ListItem既可以纵向排列,也可以横向排列。在列表中space参数调整的是列表项之间的距离。
2024-07-16 09:39:56
487
原创 ArkUI页面布局
如果只给一number类型数值则四个内边距相同。如果只给一number类型数值则四个内边距相同。如果只给一number类型数值则四个内边距相同。如果只给一number类型数值则四个内边距相同。容器内部各个组件、容器之间的纵向间距。容器内部各个组件、容器之间的纵向间距。对齐方式主要由两个属性方法来控制。枚举具体内容及展示效果详见上文。枚举具体内容及展示效果详见上文。枚举具体内容及展示效果详见上文。枚举具体内容及展示效果详见上文。column容器,列容器。
2024-07-15 19:47:06
444
原创 2月21日
总:Bean的循环依赖是指A依赖B,B又依赖A这样的依赖闭环问题,在Spring中,通过三个对象缓存区来解决循环依赖问题,这三个缓存区被定义到了DefaultSingletonBeanRegistry中,分别是singletonObjects用来存储创建完毕的Bean、earlySingletonObjects用来存储未完成依赖注入的Bean,还有SingletonFactories用来存储创建Bean的ObjectFactory。
2024-02-21 16:55:38
862
原创 2月20日
1.准备BeanFactory(DefaultListableBeanFactory)设置ClassLoader设置Environment2.扫描要放入容器中的Bean,得到对应的BeanDefinition(只扫描,并不创建)3.注册BeanPostProcessor4.处理国际化5.初始化事件多播放器ApplicationEvenMulticaster6.启动tomcat7.绑定事件监听器和事件多播放器8.实例化非懒加载的实例Bean9.扫尾工作,比如清空实例化时占用的缓存等。
2024-02-20 17:27:57
985
原创 2月19日
SpringBoot 框架在设计之初,为了有更好的兼容性,在不同的运行阶段,提供了非常多的可扩展点,可以让程序员根据自己的需求,在整个Spring应用程序运行过程中执行程序员自定义的代码ApplicationContextInitializer就是众多扩展点中的一个扩展点。
2024-02-19 15:18:10
683
原创 SpringBoot实战第四天
已有的注解不能满足所有的校验需求,特殊的情况需要自定义校验(自定义校验注解)1.自定义注解State@Documented//元注解@Constraint(validatedBy = {StateValidatiom.class})//指定提供校验规则的类//提供校验失败后的提示信息String message() default "State参数值只能为\"已发布\"或者\"草稿\"";//指定分组Class<?//负载 可以获取到State注解的附加信息Class<?三个参数必备。
2024-02-17 15:27:29
651
原创 SpringBoot实战第三天
使用接口来定义分组例如我们要给category加add和update两个分组,我们就可以在其实体类中定义如下两个分组//主键ID//分类名称//分类别名可以看到,分组可以同时指定多个,用{}来承接。
2024-02-05 16:59:05
1686
1
原创 SpringBoot实战第二天
继续完善用户相关接口开发:1.完成获取用户信息功能2.完成更新用户信息功能3.完成更新用户头像功能4.完成更新用户密码功能。
2024-02-04 19:27:30
1301
1
原创 SpringBoot实战项目第一天
Controller先看新用户注册正常,注册成功情况数据库存储情况可以看到密码的加密工作也顺利完成再来看看注册失败的情况,这里我们直接使用刚才的账密注册注册失败,至此,我们的注册功能已完成最基本的开发与测试。当然,我们在日常生活中会发现,账户与密码会有一个基本的校验,即a-b位的非空字符,显然,我们还需要对账密进行进行长度检验。
2024-02-03 18:55:33
1043
1
原创 SpringBoot第二天
以Mybatisstarter为例我们需要构建两个模块在自动配置模块中首先要导入相应依赖坐标然后提供自动配置类@Bean@Bean//扫描的包:启动类所在的包及其子包//扫描的注解自建import文件,并将自动配置类完整路径写入注意imports文件存储路径一定要在META-INF.spring下下面开始配置stater模块,该模块只需要导入相应坐标,故src文件可以直接删除掉最重要的是导入我们写的自动装配模块,最好也要将自装配模块所依赖的坐标一并导入。
2024-02-01 17:51:33
1122
原创 Spring Boot第一天
例如,如果我们在类中要调用email.username,email.code,email.host这三个值在配置文件中就应该进行如下书写email:yml书写注意事项:值前边必须有空格,作为分隔符使用空格作为缩进表示层级关系,相同的层级左对齐。
2024-01-31 19:00:51
1452
1
原创 MAVEN(2)
--开发环境--><profile>--定义环境唯一名称-->--定义环境中专用的属性值-->--设定是否为默认启动环境--></profile>--生产环境--><profile></profile>--测试环境--><profile>
2024-01-29 19:27:55
317
原创 SpringMVC第六天(拦截器)
拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行作用: 在指定的方法调用前后执行预先设定的代码 阻止原始方法的执行归属不同:Filter属于Servlet技术,Interceptor属于SpringMVC技术拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问进行技术增强第二步、定义配置类,继承WebMvcConfigurationSuport,实现addInterce
2024-01-27 16:19:50
1324
原创 SpringMVC第五天(SSM整合)
Overridethrow new BusinessException(Code.BUSINESS_ERR,"输入ID非法!");
2024-01-25 16:50:01
854
原创 SpringMVC第四天(SSM整合)
①Spring SpringConfig ②MyBatis MybatisConfig JdbcConfig jbdc.properties ③SpringMVC ServletConfig SpringMvcConfig3.功能模块 表与实体块
2024-01-24 20:49:32
642
原创 SpringMVC第三天(RESTful)
REST(Representational State Transfer),表现形式状态转换传统风格资源描述形式id=1REST风格描述形式优点:隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化按照REST风格访问资源时使用行为动作区分对资源进行了何种操作http://localhost/users 查询全部用户信息 GET(查询)
2024-01-23 19:44:04
564
1
原创 SpringMVC第二天(请求与相应)
名称:@RequestMapping位置:SpringMVC控制器方法定义上方作用:设置房钱控制器方法请求访问路径,如果设置在类上统一设置当前控制器方法请求访问路径前缀该示例在此时可以成功的访问我们会发现在userBean中也有一个路径为/save的方法,此时会与BookBean中的save方法冲突,这时我们就要给每个请求方法设置唯一的访问路径方法有二:第一种:给每一个方法都设置一个唯一路径可以看到,我们给userBean中的每个方法都独立的设置了相应路径,保证了其路径的唯一。
2024-01-22 19:33:32
960
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人