- 博客(27)
- 收藏
- 关注
原创 OpenHarmony 启动流程优化
平台:润和的rk3568分支:openharmony release 3.2 目前rk3568的开机时间有21s,统计的是关机后从按下power按键到显示锁屏的时间,当对openharmony的系统进行了裁剪子系统,系统app,禁用部分服务后发现开机时间仅仅提高到了20.94s 优化微乎其微。在对init进程的log进行分析并解决其中的时间断层后 开机时长优化到了16.5s左右,可以说是一个非常大的进步了,下面详细讲一下优化的过程。
2023-07-10 10:42:45
2083
原创 OpenHarmony VideoEncoder js接口开发
由于本人对于视频编码的知识了解较少,所以提供给app使用的接口主要参考native接口来设计,接口文件index.d.ts如下/*** @since 9* @since 9/*** @since 9* @since 9* @since 9* @since 9* @since 9* @since 9* @since 9* @since 9* @since 9* @since 9* @since 9* @since 9。
2023-06-25 14:42:00
880
2
原创 OpenHarmony服务启动框架
从上面代码我们可以知道服务的启动最终调用到了SystemAbility的start函数,由于我们注册的时候注册的是HCameraService,所以会调用到HCameraService的start函数。可以看到他是通过执行system/bin/sa_main程序导入了/system/profile/camera_service.xml配置文件启动的camera_service服务就和Android的init.rc中启动native进程是类似的。在3.2小节中启动ability走的时run函数。
2023-05-24 14:22:17
1601
原创 OpenHarmony添加自定义的子系统、部件、模块
这里我们将OpenHarmony的两个例子添加到源码中并使其编译到系统中,这里有一点需要注意的是不可以将自定义的子系统放到其他已经定义的子系统目录下,vendor下的product文件夹也被认为成一个子系统,比如/就作为product_hihope子系统存在的,其定义在/
2023-04-12 09:57:10
3213
6
原创 OpenHarmony Init进程的启动流程
OpenHarmony启动流程OpenHarmony 源码网站:http://ci.openharmony.cn/codeSearchhttps://www.lengqinjie.xyz/lxr/source/一、kernel的启动流程图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lzDpagvq-1679988627138)(…\image\OH开机启动流程.png)]由于OpenHarmony(下面简称OH)的标准系统的底层系统是linux,所以前期和A
2023-03-28 15:36:22
4054
4
原创 OpenHarmony Framework层服务一览
服务描述是否裁剪代码位置AccountMgr账号子系统的主要服务?/base/account/os_account/services/accountmgr/AIEngineAI子系统是/foundation/ai/ai_engine/AbilityManagerServiceAbility管理服务否/foundation/ability/ability_runtime/services/abilitymgr/DataObserverMgrData
2023-03-28 15:29:17
937
原创 Android 按键、关机界面的定制
在平常的项目中我们会有很多定制 按键和一些UI的需求,这里就以定制power键和关机界面为例来聊一下遇到这类需求要如何去开发。
2022-11-15 11:32:03
1269
1
原创 Android Camera模块(二)
Android Camera模块(二)Camera Framework层Camera Framework层即CameraServer服务实现.CameraServer是Native Service,代码在frameworks/av/services/camera/libcameraservice/CameraServer承上启下,上对应用提供Aosp的接口服务,下和Hal直接交互.一般而言,CamerServer出现问题的概率极低,大部分还是App层及HAL层出现的问题居多.我们这里仍然是从上往下进
2022-03-28 08:52:09
3201
原创 Android Camera模块(一)
Android Camera模块(一)一、Android Camera架构1.1 整体架构架构参考Android Camera简单整理(一)-Camera Android架构(基于Q)google 官方图:从上图得知,Android手机中Camera软件主要有大体上有4层:1.应用层: 应用开发者调用AOSP提供的接口即可,AOSP的接口即Android提供的相机应用的通用接口,这些接口将通过Binder与Framework层的相机服务进行操作与数据传递;2.Framework层: 位于 f
2022-03-04 13:04:19
5828
1
原创 编译最新的Android源码遇到的问题
1.reposync 时出现错误Fetching: 100% (1109/1109), done in 34m21.964sGarbage collecting: 100% (1109/1109), done in 1.705sinfo: A new version of repo is availablewarning: repo is not tracking a remote branch, so it will not receive updatesrepo reset: error: E
2022-02-26 17:29:14
2540
原创 Android12 图形系统
Android 图形系统本文参考http://gityuan.com/2017/01/08/windowmanger/ 结合Android12.0的源码进行分析一、概述Android图形系统的大概组成:Surface:代表画布 (在ViewRootImpl初始化时创建的)WMS(Window Manager Service): 添加window的过程主要功能是添加Surface,管理所有的Surface布局,以及Z轴排序问题;SurfaceFinger: 将Surface按次序混合并显示到物理
2022-02-08 10:56:57
4136
原创 Android9.0 本地时区和本地时间的自动更新机制
Android9.0 本地时区和本地时间的自动更新机制简介现在Android通过网络同步时间有两种方式:NITZ和NTP,它们使用的条件不同,可以获取的信息也不一样;勾选自动同步功能后,手机首先会尝试NITZ方式,若获取时间失败,则使用NTP方式1.NITZ(network identity and time zone)同步时间 NITZ是一种GSM/WCDMA基地台方式,必须插入SIM卡;可以提供时间和时区信息2.NTP(network time protocol)同步时间 NTP在无
2022-01-28 15:04:32
7139
2
原创 AndroidInputSystem
AndroidInputSystem文章以Android 12为例介绍 IMS ->InputManagerService WMS->WindowManagerService1. 启动流程InputManagerService是作为系统服务由SystemServer启动的,做为其他服务启动的/frameworks/base/services/java/com/android/server/SystemServer.java1248 t.traceBegin(
2022-01-28 14:56:57
823
原创 InputMethod流程解读
InputMethod(以Android4.4.3为例)1.默认输入法的启动流程:SystemServer会启动InputMethodManagerService,在InputMethodManagerService中会启动action为"android.view.InputMethod"的Service,同时会设置组件名称来决定启动哪个输入法。/frameworks/base/services/java/com/android/server/InputMethodManagerService.jav
2022-01-28 14:47:25
3889
原创 Android4.3 Google Pinyin输入法UI定制
Android4.3 Google Pinyin输入法UI定制先来看原版输入法的效果如下:定制后的效果如下:SystemServer会启动InputMethodManagerService,在InputMethodManagerService中会启动action为"android.view.InputMethod"的Service,同时会设置组件名称来决定启动哪个输入法。/frameworks/base/services/java/com/android/server/InputMethodM
2022-01-28 14:45:41
3510
4
原创 使用Ubuntu20.04编译 androidP时出现的错误
1.so库找不到的问题这里提供一个通解的方法:一般so库找不到的报错关键如下:error while loading shared libraries: libncurses.so.5AndroidP以后的AOSP的代码一般都会自带这些so库,(连jdk都已经自带了)可以在Android根目录下执行如下指令find / -name libncurses.so.5上面这条指令能显示出AOSP自带的so库的路径,比如上面这个libncurses.so.5的路径就是prebuilts/gcc/li
2022-01-19 10:39:31
2062
原创 Android9 ab系统OTA升级总结
Android9 ab系统OTA升级总结OTA升级介绍 官方介绍 https://source.android.google.cn/devices/tech/ota/tools#multiple-skus1.OTA升级包的制作OTA升级有两种方式,全包升级和差分升级总体升级操作步骤类似首先需要对代码做一些改动:如下在/build/core/Makefile中添加如下代码:/build/core/Makefile2850 $(hide) PATH=$(foreach p,$(INTERNAL_
2021-09-10 17:34:33
3552
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人