- 博客(363)
- 资源 (34)
- 收藏
- 关注
原创 OpenHarmony 入门——ArkUI 自定义组件间的嵌套类对象属性双向同步@Observed和@ObjectLink装饰器小结(六)
ObjectLink和@Observed类装饰器用于在涉及嵌套对象或数组的场景中进行双向数据同步。即@Observed 修饰的是被嵌套的对象和包含该嵌套对象的外层对象,@ObjectLink就是组件内修饰的被嵌套的对象。被@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。
2024-12-02 21:30:00 1547
原创 鸿蒙进阶——HDI及IDL硬件接口IPC框架小结
HDI(Hardware Device Interface):OpenHarmony硬件设备接口,定义系统中跨进程通信的接口,实现服务间的跨进程通信
2024-11-16 21:30:00 1553
原创 鸿蒙 入门——ArkUI 自定义组件间的“后代“双向同步@Provide和@Consume装饰器小结(五)
在多层级之间传递的@Provide和@Consume装饰器。
2024-11-09 21:30:00 1067
原创 鸿蒙 入门——ArkUI 自定义组件之间父到子单向同步的装饰器@Prop语法(三)
@State修饰的作为数据源可以与多种组件间的装饰器组合使用从而实现组件间的数据同步,而@Prop 是 父——>子的单向同步
2024-11-02 15:30:00 622
原创 鸿蒙 入门——初识JS/ArkTS 侧的“JNI” NAPI框架内部核心原理(四)
实现一个NAPI模块,开发者需要完成模块注册、定义接口映射、实现回调方法等工作,这些工作在NAPI框架内部是怎么起作用的,为了实现javaScript与C++的交互,框架又做了哪些事情?NAIP框架代码在 foundation\arkui\napi\ 路径下,从源码结构上来看可分为interface、native_engine 和 xxxManager 三部分interface 目录为NAPI开发者提供了各种常用功能的API接口及宏定义。
2024-08-28 09:51:58 1002
原创 鸿蒙 入门——ArkUI 自定义组件之间的状态装饰器小结(一)
何为状态呢,如果页面多为静态界面那就没有引入状态的概念。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念,简而言之就是用数据驱动UI的自动更新,当数据改动时无需做任何代码改变相应的UI 效果就会自动更新。自定义组件拥有变量,变量必须被装饰器装饰才可以成为状态变量,状态变量的改变会引起UI的渲染刷新。如果不使用状态变量,UI只能在初始化时渲染,后续将不会再刷新。下图展示了State和View(UI)之间的关系。
2024-07-21 13:27:10 1305
原创 鸿蒙 入门——ArkUI自定义组件的生命周期(二)
所谓自定义组件就是**@Component装饰的UI单元**,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期。而页面即应用的UI页面,可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的组件才可以调用页面的生命周期。自定义组件的创建:自定义组件的实例由ArkUI框架创建。
2024-07-19 20:15:00 747
原创 鸿蒙 入门——ArkUI自定义组件的基础语法(一)
定义一个被@Component 装饰器修饰的struct类型的自定义组件名在这个自定义组件的代码块内实现build函数。
2024-07-12 20:00:00 915
原创 鸿蒙 入门——单元测试UnitTest快速入门
OpenHarmony 的单元测试(UnitTest)是一个关键的软件开发过程,它确保代码的各个部分能够按预期工作,OpenHarmony的测试框架中提供了很多种的单元测试,今天简单介绍下UnitTest 类型的TDD测试。
2024-07-08 21:30:00 1114 2
原创 鸿蒙 入门——初识JS/ArkTS 侧的“JNI” NAPI(一)
NAPI全称Native Application Programming Interface(最新版的文档已经改为Node-API了)属于UI框架ArkUI子系统的一部分,类似于Java中使用的 JNI机制
2024-05-21 20:09:47 1442
原创 Android 进阶——图形系统的另一种“画布” Surface 详解
Surface 是Android系统中真正的画布,Activity上的所有UI都是在Surface 上完成绘制的,每一个Surface 对象都在SurfaceFlinger中有对应的图层(Layer),SurfaceFlinger 负责把这些Layer按需混合处理后输出到Frame Buffer中,再由Display设备(屏幕或显示器)把Frame Buffer里的数据呈现到屏幕上。
2024-01-02 00:14:50 2661 1
原创 Android进阶——更节电的后台任务JobScheduler 机制使用详解
JobScheduler 机制中把每个需要后台的业务抽象为一个Job,通过系统管理Job,来提高资源的利用率和减少不必要的唤醒,从而提高性能,节省电源。当系统启动时会通过system_server进程启动****服务,然后当使用该机制时,首先通过JobInfo构造具体的后台任务对象,并通过传入到后台任务调度器,当满足配置的条件时系统便会在对应的JobService上执行对应的作业。简而言之,系统提供了一种条件周期性执行的后台任务,无需开发者自己去唤醒,达到配置的条件便会自动执行。
2023-12-01 21:15:00 1239
原创 Android 进阶——Binder IPC之学习Binder IPC架构及原理概述(十二)
(系统调用 open、mmap 和 ioctl 函数来访问设备文件 /dev/binder,实现与 Binder 驱动的交互来间接的实现跨进程通信),而非直接交互的原因是,**因为Client进程、Server进程、Service Manager进程属于进程空间的用户空间,不可进行进程间交互,而Binder驱动属于进程空间的内核空间,可进行进程间(进程内)直接交互。其中 Client进程、Server进程、Service Manager进程运行在用户空间,互相隔离,而Binder 驱动运行在内核空间。
2023-11-10 19:46:36 596
原创 OpenHarmony 入门——搭建OpenHarmony本地应用开发环境
OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
2023-11-03 21:15:00 4959 6
原创 Android进阶——Handler底层fd监听之epoll机制
文章大纲引言一、从网卡接收数据说起二、如何知道接收了数据?三、进程阻塞为什么不占用cpu资源?四、那么阻塞的原理是什么?1、工作队列2、等待队列3、唤醒进程五、内核接收网络数据全过程六、同时监视多个socket的简单方法七、epoll的设计思路1、措施一:功能分离2、措施二:就绪列表八、epoll的原理和流程1、创建epoll对象2、维护监视列表3、接收数据4、阻塞和唤醒进程九、epoll的实现细...
2023-10-24 21:30:00 809 1
原创 Android 进阶——图形显示系统之ViewRootImpl对象创建详解(三)
ViewRootImpl 作为顶层视图结构包装类持有IWindowSession、Choreographer 及其Choreographer.FrameCallback接口,主要负责通过IWindowSession与WindowManagerService通信。
2023-10-20 21:15:00 443
原创 Android 进阶——系统启动之BootLoader 及内核启动一(下)
手机电源被打开时,首先是引导进入BootLoader分区加载Linux 内核并解析执行init.rc脚本.
2023-10-03 20:45:00 493 1
原创 Android 进阶——图形显示系统之Choreographer监听VSync并提供回调接口详解(二)
图形显示系统之Choreographer监听VSync并提供回调接口详解
2023-09-08 00:15:00 539
原创 Android 进阶——图形显示系统之VSync和 Choreographer的创建详解(一)
VSync和 Choreographer的创建详解
2023-09-01 23:00:00 1598
原创 Android 进阶——Framework 核心之 Binder驱动基础数据结构详解(十一)
传输的数据被封装在一个复用数据联合体,对于BINDER类型,数据就是一个binder本地对象,而HANDLE类型,数据就是一个远程的handle对象。
2023-05-07 16:00:00 1380 1
原创 Android 进阶——Binder IPC之Binder 驱动基础理论和协议详解(十)
Binder驱动程序是由系统实现并运行在内核的一条核心进程,负责Binder IPC的具体实现以及相关Binder对象的管理。
2023-04-30 23:41:28 1948
原创 Android 进阶——Binder IPC之Binder IPC架构及原理概述(九)
Binder IPC之学习Binder IPC架构及原理。
2023-04-06 21:00:00 1867 2
原创 Android 进阶——Binder IPC之Native家族成员Binder设备操作类ProcessState详解(八)
ProcessState 继承自RefBase,ProcessState在同一进程内是唯一的,主要用于初始化Binder设备(即打开binder设备文件/dev/binder节点)并将设备文件映射到进程的地址空间。Binder线程池中的每一个线程都可以通过它与Binder驱动程序建立连接。
2023-03-27 17:31:51 1766
原创 Android 进阶——Binder IPC之Native家族成员驱动通信桥梁IPCThreadState 详解(七)
无论是BpBinder还是BnBinder,都是通过IPCThreadState和Binder 驱动程序通信的,换言之,Server进程是通过Binder库(客户端与服务端)的IPCThreadState 来处理与Binder驱动的协议的,类似Socket通信一样,IPCThreadState的代码一部分给客户端使用,一部分给服务端使用。
2023-03-20 23:15:00 2571
原创 Android 进阶——Binder IPC之Native 服务的启动及代理对象的获取详解(六)
Binder IPC之Native 服务的启动及代理对象的获取详解
2023-03-10 16:48:42 1529
原创 Android 进阶——Framework 核心之Binder对象管理者 Service Manager 守护进程及其自身代理对象详解(五)
运行于用户空间的Service Manager守护进程是Binder IPC 的核心部件之一,充当着IPC时上下文管理者角色,在负责管理系统的Binder Service组件的同时,还向Client组件提供获取Binder服务的对应的Binder引用对象(根据注册时的Binder服务名称)
2023-02-20 21:00:00 2489
原创 Android 进阶——Framework 核心之Binder 对象及其生命周期小结(四)
Framework 核心之Binder 对象及其生命周期小结
2023-02-12 21:23:48 1311 2
原创 Android 进阶——Framework核心 之Binder Java成员类详解(三)
Framework核心 之Binder Java成员类详解
2023-02-12 00:00:00 1041 2
原创 Android 进阶——Framework核心 之Binder Native成员类详解(二)
Framework核心 之Binder Native成员类详解。
2023-02-10 22:06:44 1390
原创 Android 进阶——Framework 核心之Touch事件分发机制详细攻略(一)
Android 事件事件分发的对象、处理事件的对象、事件分发的流程四、事件分发的原理引言一般说来所有事件的本质都是由驱动打通硬件屏幕和操作系统的输入总线的,当手指去点击或者按下屏幕时都会产生对应的信号,由驱动往操作系统上传递,并提供对应的监听和响应机制,这也是为什么MotionEvent需要继承native 层InputEvent(其...
2022-12-21 20:00:00 3199 2
platform.keystore
2020-09-12
Android刘海屏适配demo
2019-12-07
ReplaceSkin.zip
2019-08-14
Upload2Nexus.zip
2019-06-01
ApplyHiPlugin.zip
2019-05-24
BuildPlugin.zip
2019-05-20
自定义Gradle插件最全Demo
2019-05-04
Android AIDL 跨进程更新UI
2019-04-29
Android跨进程更新UI
2019-04-29
AIDL最全Demo
2018-05-09
万用的接口框架
2018-04-11
责任链模式源码
2018-03-13
策略模式源码
2018-03-12
原型模式源码
2018-03-09
两种方案处理运行时权限
2017-04-27
[SQLite权威指南(第二版)].Grant.Allen.扫描版
2015-10-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人