自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 收藏
  • 关注

原创 OpenHarmony Trace的使用

近期很多开发者反馈OpenHarmony三方库Imageknife有性能问题:连续拖动很多张图片时,界面有明显的卡顿现象。因为对这个三方库的源码并不了解,因此需要了解目前Imageknife渲染花费了多少时间,最初想的是只有通过hilog打印日志看执行时间,后来一搜发现。国庆节后来计划来优化Imageknife。

2023-10-01 15:08:54 566

原创 NPM/PUB DEV发布三方组件方法

NPM发布三方组件。

2023-02-17 10:20:18 156

原创 华为OD在线编程题准备

二分查找【最最重点】:1.搜索二维矩阵 II 2.寻找两个有序数组的中位数。滑动窗口【最最重点】:1.尽可能使字符串相等 2.无重复字符得最长子串。要求:985,211学校需大于>150 , 其他学校需要>300。贪心算法: 1.用最少数量得箭引爆气球 2.交换字符使得字符串相同。前缀和&Hash: 1.和为K得子数组 2.连续得组数组和。单调栈【最最重点】:1.下一个更大元素 2.接雨水。深度遍历:1.最短的桥 2.重新安排的行程。内容:3道编程题目:100,100,200。

2023-01-16 11:23:39 1804

原创 安卓应用架构学习

安卓应用架构学习 新建工程参考

2023-01-04 16:51:44 104

原创 flutter课程(The Complete 2021 Flutter Development Bootcamp with Dart)学习总结

为了学习鸿蒙ArkTS,特意先学了一遍flutter以作参考对比。全程只听了课,没有做任何练习,仅做了些纪要:该课程为收费课程,不过我看的是B站的视频【Udemy付费课程】The Complete 2021 Flutter Development Bootcamp with Dart(中英文字幕)_哔哩哔哩_bilibili课程特点:首先讲了什么是flutter,为什么要用flutter,以及flutter的优势。然后讲了Flutter界面的构成:组件树 (第5课)接下来讲了开发环境的搭建,hellowo

2022-12-07 09:24:10 395

原创 javascript原型prototype,原型链简要纪要

近期在研究成熟javascript三方组件移植鸿蒙的问题,由于鸿蒙里Arki引擎与web/nodejs的语法以及内置对象的差异,看到很多同学大都采用侵入式修改来移植,因此往往修改几个方法,就把整个git库给移植了。针对之前了解的javascript原型,原型链的知识,本周逐步复习了下,重点在B站上听了下【跟山地人学JavaScript系列教程】课16.理解什么是原型-Prototype和__prop__和原型链?_哔哩哔哩_bilibili其里面说的文章见:对象原型 - 学习 Web 开发 | MDN利用J

2022-06-10 14:29:16 142

原创 安卓设计尺寸记录

近期尝试按照UX设计的图稿,开发一个安卓应用。中间遇到了一些尺寸问题,记录一下。UX使用sketch设计,上传到蓝湖,用的是1倍图360dp.(通常1倍图安卓是360dp,苹果是375dp),蓝湖右上角是可以调整其他倍图的。目前我收上的测试手机是华为P40,参考谈谈安卓屏幕相关信息_dev晴天的博客-CSDN博客可以打印出该手机,宽度为1080px,高度2211px ,相对密度3通过学习视频安卓设计规范_基础篇(上)_哔哩哔哩_bilibili了解到:常见安卓尺寸:720*1280px 1080*

2022-06-01 09:17:41 1790

原创 文件上传服务,配合验证OKHTTP

今天,为了验证okhttp上传下载的功能,配套需要一个http服务用于验证服务上传和下载的功能。找了一个springboot的,部署起来很简单:参考readme,修改个保存路径,直接java启动就行了https://github.com/callicoder/spring-boot-file-upload-download-rest-api-example...

2022-05-28 20:16:10 86

原创 jetpack常用架构组件的作用

工程创建1.创建HarmonyOS工程1.1 下载安装DevEcoStudio ,当前安装的版本是DevEco Studio 2.1 Beta4。 1.2 使用DevEco Studio,创建新项目(Create HarmonyOS Project),选择设备Phone,选择模板Empty Feature Ability(Java),命名项目名为CrazyClock。工程将自动创建一个entry的FA,这个默认的FA将用于闹钟设置。 1.3 在entry/src/main/resources/bas

2022-03-14 20:37:02 3136

原创 鸿蒙OpenHarmony hi3516开发板,标准系统实现智能门禁

终于完成了到了这个阶段,在OpenHarmony标准设备上(3.1Beta版本),开发一个应用程序,实现智能门禁的效果(暂时以闪灯表示门禁识别)。暂时没有拍完整操作的图,大家自己想象下吧。。。1. 准备文字(车牌)打印在白纸上,文字对准摄像头,模拟汽车靠近门禁。2. 点击3516开发板上自定义按钮触发拍照,调用百度云识别车牌。3. 针对识别结果,如果文字时当前车主的车牌号,则闪3下粉色灯,如果不是,则闪3下红灯。模拟设备响应车牌识别结果。样例方案:懒得画图了,用文字描述一

2022-01-12 19:17:48 3505

原创 鸿蒙OpenHarmony hi3516开发板,标准系统调用外部Rest接口

已实现了标准系统拍照和云服务文字识别的研究,现需要验证在OpenHarmony标准设备上,开发一个应用程序,通过调用OpenHarmony已集成的libcurl,封装2个方法,实现对外网http reset接口(get/post)调用。作为后期调用AI云服务的基础。本次已经使用OpenHarmony 3.1 Beta的代码,仍然使用润和HiSpark Taurus AI Camera(Hi3516d)开发板套件步骤1 下载OpenHarmony源代码repo init -u git@g

2022-01-09 11:38:02 1147 1

原创 文字识别云服务使用记录

最近,在做完OpenHarmony 3516开发板拍照的功能以后,下一步就需要研究一下目前又哪些AI云服务可用,可以实现从图片中识别文字,于是做了如下记录:华为云:文字识别服务的产品介绍:图解文字识别_文字识别 OCR_产品介绍_华为云目前开通了一个一年的试用,每天有500次的免费调用。尝试使用了通用文字识别,手写文字识别。试用方式:首先先在在线体验模拟调用https://apiexplorer.developer.huaweicloud.com/apiexplorer/sdk?prod

2022-01-07 21:41:53 792

原创 鸿蒙OpenHarmony hi3516开发板,标准系统响应按钮拍照

自从搞懂了标准系统GPIO的操作后,即鸿蒙OpenHarmony hi3516开发板,标准系统按钮开关灯,下一步使用按钮也很快的搞定了,先做个暂时的记录吧。下一步,研究如何http调用云服务AI识图整体开发方式跟上次一样,就不再追溯了,仅仅修改了applications/standard/app/hello.c重点参考了OpenHarmony的文档和一个test源代码,文档中写了主要的步骤,另外我在代码中把每个步骤都写了注释:参考文档:multimedia_camera_standard:

2021-12-27 20:40:34 978

原创 OpenHarmony轻量系统 子系统,组件那点事

OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。OpenHarmony技术架构如下所示:OpenHarmony支持如下几种系统类型: 轻量系统(mini system) 面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,硬件资源极其有限,支持的设备最小内存为128KiB,可以提供多种轻量级网络协议

2021-12-27 20:09:26 5130

原创 鸿蒙OpenHarmony hi3516开发板,标准系统按钮开关灯

背景从HarmonyOS应用开发玩到OpenHarmony应用开发,前前后后也有大半年了,北向HelloWorld的应用从JAVA写到了JS,又写到了eTS。北向应用的开发不说是精通,至少也早已是个半吊子,查查文档和参考下开发样例,还是能慢慢的写出个应用。然而,南向设备的开发,却一直拖着不知道如何上手。于是,最近终于狠下决心了: 从设备开发的HelloWorld---点灯开始,先在OpenHarmony标准设备上,使用linux自带的GPIO点个灯,走出第一步,后续再使用HDF,NAPI等能力,持续探索

2021-12-23 19:16:47 2955 8

原创 OpenHarmony hdc_std无反应的解决办法

当前我们使用hdc_std安装OpenHarmony标准系统应用时,可能会遇到hdc_std命令无响应的问题。解决办法:首先,我们需要确认本地hdc_std命令的版本与OS标准设备里hdcd的版本一致。本地hdc_std命令的版本查看方法:hdc_std.exe -vOS标准设备里hdcd的版本查看方法:hdcd -v如果不一致,则需要使用OS同样的代码,编译SDK,获取相同版本的hdc_std.exe具体方法:#在源码根目录下./build.sh --prod.

2021-12-22 17:35:27 4092

原创 基于润和hi3516 dv300开发板,体验鸿蒙3.0 L1小型系统拍照Sample

背景:希望能在润和hi3516 dv300开发板上,体验拍照功能前段时间花了一段精力,好不容易在润和hi3516 dv300上烧录了L2系统,并跑成功了ArkUI应用,详见(基于润和3516 dv300开发板,运行鸿蒙3.0 ArkUI helloworld_sd2131512的专栏-CSDN博客)。但是我的目标是做一个自动感应拍照的功能,不需要开发应用。因此,最近重新看了OpenHarmony文档,发现其在轻小型系统上已经有现成的sample(zh-cn/device-dev/guide/devi

2021-12-07 09:05:07 2096

原创 基于润和3516 dv300开发板,运行鸿蒙3.1 ArkUI helloworld

目标:在3516 dv300开发板上,运行ArkUI helloworld使用2021.9.30 openharmony3.1beta,编译L2标准系统,并烧录在润和3516 DV300开发板上,运行基于ARKUI的ETS应用详细步骤1. 购买润和3516 dv300开发板淘宝搜索“润和HramonyOS HiSpark Taurus AI Camera(Hi3516d)开发板套”2.组装3516开发板参考视频,我家二年级的小朋友看了都会组装。。。3.Docker容.

2021-11-18 16:31:00 2484

原创 鸿蒙应用:多设备闹钟开发教程(8)

PA定时拉起闹钟FA本节前,我们分别开发完了闹钟设置entry FA和闹钟clock FA的功能开发,本节我们将完成最后的逻辑定时拉起。这块设计的思路是在闹钟设置entry FA的里再新增一个Service Ability的PA,里面通过定时任务触发闹钟,并跨设备拉起闹钟FA里的闹钟界面。1.闹钟设置entry FA里新增Service Ability,触发定时拉起1.1 在公共common har包中增加常量Constants,定义公共消息关闭闹钟代码。 Constants.javapu

2021-06-04 20:07:54 1001 1

原创 鸿蒙应用:多设备闹钟开发教程(7)

闹钟FA开发闹钟界面本节之前,我们已经完成了闹钟设置FA的开发。本节我们将在闹钟FA开发一个界面显示闹钟和一个关闭按钮,并播放闹钟声音。1.添加播放闹钟声音的封装类1.1 代码来自codelab分布式“HarmonyOS 分布式视频播放”,新增PlayerStateListener.java和PlayerManager.java封装音乐播放。 PlayerStateListener.javapackage com.madixin.clock.clock.util;​/**..

2021-06-04 20:06:35 690 1

原创 鸿蒙应用:多设备闹钟开发教程(6)

数据库开发及联调本节之前,我们已经完成了所有设置页面的开发,本节我们将开发ClockManager关系型数据库的操作,实现clock的增删改查持久化,并联调之前所有的界面,在真机上验证闹钟的创建,修改,显示和删除。1.完善ClockManager类,实现闹钟的增删改查数据库1.HarmonyOs内置关系型数据库,因为这个应用只需要主机设置和实现定时操作,所以只需要实现关系型数据库,而不需要使用分布式数据库。首先需要新增一个Data Ability名命为ClockDataAbility,里面定义闹

2021-06-04 20:05:26 514

原创 鸿蒙应用:多设备闹钟开发教程(5)

删除闹钟页面本节我们将开发删除闹钟页面。这个页面由主列表页面长按闹钟列表某个闹钟后跳转进入,支持单个选择和全选,点击删除后删除选中的闹钟。1.增加删除闹钟的Slice,实现删除闹钟特性1.1 在entry>src>main>resources>base>element>string.json中添加新的文字资源。 { "name": "selectClock", "value": "选择闹钟" }, {...

2021-06-04 20:03:48 654 2

原创 鸿蒙应用:多设备闹钟开发教程(4)

编辑闹钟页面本节我们将开发编辑闹钟页面。这个页面由主列表页面点击闹钟列表某个闹钟后跳转进入,可选择时间,铃声,时长和输入名称,最后保存返回主列表页面。整个页面跟创建页面的布局文件ability_add_clock.xml类似,差异点在于标题需要为修改闹钟,以及增加删除按钮。1.增加修改闹钟的Slice,实现修改闹钟特性1.1 在entry>src>main>resources>base>element>string.json中添加新的文字资源。..

2021-06-04 20:02:27 814 1

原创 鸿蒙应用:多设备闹钟开发教程(3)

创建闹钟页面本节我们将开发创建闹钟页面。这个页面有主列表页面点击“+”后跳转进入,可选择时间,铃声,时长和输入名称,最后保存返回主列表页面。整个页面使用DirectionalLayout垂直布局,从上到下依次排列控件。1.开发创建闹钟的页面的xml资源文件1.1 在entry>src>main>resources>base>element>string.json中添加新的文字资源{ "name": "suretomodify", ...

2021-06-04 20:00:46 645 1

原创 鸿蒙应用:多设备闹钟开发教程(2)

主列表页面本节我们将开发闹钟的主列表页面。这个页面包含底部TabList的里闹钟和设置两个tab,点击闹钟时显示闹钟列表,点击设置时显示关于,设备等信息。1.开发主页面的xml资源文件1.1 在string.json中添加资源文件{ "string": [ { "name": "app_name", "value": "多设备闹钟" }, { "name": "clock", "value": "...

2021-06-04 19:58:29 938 1

原创 鸿蒙应用:多设备闹钟开发教程(1)

工程创建1.创建HarmonyOS工程1.1 下载安装DevEcoStudio ,当前安装的版本是DevEco Studio 2.1 Beta4。 1.2 使用DevEco Studio,创建新项目(Create HarmonyOS Project),选择设备Phone,选择模板Empty Feature Ability(Java),命名项目名为CrazyClock。工程将自动创建一个entry的FA,这个默认的FA将用于闹钟设置。 1.3 在entry/src/main/resources/bas

2021-06-04 19:38:11 1280

原创 鸿蒙应用:多设备闹钟帮你把多个房间的娃同时叫醒!

如何一大早,把每个房间的娃同时叫醒? 之前的我,设置好闹钟,每天先把自己叫醒,然后再一个个房间把娃叫醒穿衣洗脸。现在的我,在一部手机里使用“多设备闹钟应用”的设置FA添加闹钟。待起床时间,同时拉起多个房间的可用设备的闹钟FA,同时把娃叫醒。这里使用到了HarmoyOS应用按需下载FA,分布式拉起FA的能力。...

2021-06-04 19:17:12 818 1

原创 在电脑上使用Scrcpy投屏安卓手机/PAD/手表!

背景:公司需要录屏显示多个手机的操作方案:使用scrcpy进行投屏githubhttps://github.com/Genymobile/scrcpy中文说明文档:https://github.com/Genymobile/scrcpy/blob/master/README.zh-Hans.md主要命令:#手指触摸的时候显示轨迹球scrcpy -t #投屏并录屏scrcpy -r file.mp4#不投屏只录屏scrcpy -Nr file.mp4...

2021-04-03 23:01:06 914

原创 CPU高性能诊断方法

今天看同事诊断一java进程CPU高的问题,特此记录下方法:1.通过ps命令查看具体哪个线程CPU高ps -mp [pid] -o THREAD,tid,time2.jstack -l通过jstack查找对应线程ID,看在执行哪块逻辑。 接着对应代码分析。。。...

2020-07-03 22:44:40 178

原创 linux神器strace

最近在项目中连续遇到问题,都发现可以使用strace来协助定位:场景一:suse编译的so在ubuntu和cetnos上执行时会报segment异常,直接退出。使用strace可查看其间接链接了哪些动态库场景二:分析fuse文件系统慢的问题,使用strace分析编译构建时系统调用的次数和时间更多参考请见:https://www.cnblogs.com/youxin/p/8837771.html...

2020-05-24 21:26:09 317

原创 linux nc命令的使用-----可用于测试往socket端口发送c++需要的整数(4个字节)

今天在项目中,需要往socket接口里发送一个c++里的"31"整数(4个字节),测试了使用telnet好像搞不定,最终谷歌后使用nc来实现echo -e '\x1f\x00\x00\x00' | nc 127.0.0.1 44698当然python也可使用,代码搞定:send_msg = struct.pack("i%", len(msg_info))c = sock...

2020-04-11 13:09:00 1218

原创 Fuse & Fuse helloworld

最近项目用到了Fuse“秒级”准备代码,构建时按需从远程获取代码并缓存到本地。虽然代码“准备”确实是快了,但构建的速度却有40%左右的劣化,正如下午说的,每次读写文件都需要用户态和内核态的切换。当前能想到的是读写分离,即写的目录不要是fuse目录,其他的办法还得在研究。。。。https://www.jianshu.com/p/c2b77d0bbc43为什么FUSE会存在事物的存在...

2020-03-07 15:58:22 385

原创 pyinstaller 把python编译成二进制

我考,原来python也能编译成二进制,即脱离python环境运行,我还以为这只是c,c++,golang这些语言才能做的。好吧,我承认,我今天才知道。。。。pyinstaller 安装1.安装pipcurl https://bootstrap.pypa.io/get-pip.py -o get-pip.pypython3 get-pip.py2.安装...

2020-03-07 15:50:28 2120

原创 使用VScode 远程访问和编辑文件

直接修改远程主机上的脚本,而不用每次都将本地文件上传到远端主机上,显然更高效和方便。VSCode支持远程访问编辑文件,需安装一个插件“remote-browser”,直接搜索安装插件即可。这个插件通过sftp远程登录的方式,使得VScode可以浏览和编辑远程主机上的文件。https://www.jianshu.com/p/62640017686d...

2020-02-27 20:50:31 421

原创 GCC 学习记录

抽空学习了Linux GCC,以前都是搞visual c++和java开发,很少关注这块,只听说过make,cmake...小布老师视频:https://www.bilibili.com/video/av82377250?p=5编译过程:步骤1:预处理(处理宏) Preprocessing(to expand macros)步骤2:编译(源程序生成汇编语言) Com...

2020-02-22 16:40:32 179

原创 java问题定位总结

本周遇到了两起java问题的定位,特此总结一下:场景一:Jenkins有大量的job无法被调度,运维人员怀疑是jenkins for kubernates插件有bug,并通过Jstack捕获了一个thread dump的命令,发现jvm里面有大量线程,正在等一个重入锁,于是让我分析原因。Dump文件比较大,从文本文件分析较费劲,不过也能找出来有一个线程占用了锁,其他有100+线程都...

2019-03-24 11:30:47 232

原创 Git源代码学习

因公司内部业务场景,需要修改部分源代码以及开发相关hook,这里简单记录下主要的过程源代码地址和版本https://github.com/git/git当前我看的是v2.18.0版本IDE工具:VIM,VSCode,SourceInsight编译方法:主要参考https://github.com/git/git/blob/master/INSTALL在ubuntu.centos上编译,我就修改了路...

2018-07-11 10:16:12 8208

原创 git 2.1.x 新特性 -- 隔离区域( QUARANTINE ENVIRONMENT)

具体描述见官网:https://git-scm.com/docs/git-receive-pack#_quarantine_environment简单地说,git 2.1.x以后push代码时,会把代码先push到$GIT_DIR/objects/incoming-xxxx的一个隔离目录,待相关钩子验证通过后再将新生成的对象(blob,tree,commit之类)放入到$GIT_DIR/objec...

2018-07-11 09:58:59 558

原创 git 2.18 新特性 -- 独立打包大文件(git gc --keep-largest-pack )

2018.6月,git新发布了git2.18版本,其中有个特性是git gc --keep-largest-pack我们知道git gc以后,objects下面的对象都会pack到pack目录的一个压缩文件里,这样在文件多的情况下传输的性能会提高。然而,这个也会造成一些负面的影响,比如一些大文件压缩和解压也会造成性能损耗(建议git还是通过hook限制大文件,或者用Git-LFS解决)git2.1...

2018-07-09 11:48:09 762

原创 CGO - GOLANG调用C库

      虽然C代码很难写,尤其是内存管理,但不得不承认,目前很多开源项目都还是用纯C编写的,我想主要还是执行效率高和商业发布时不容易反编译(次要)。因此之前在用java时使用到了JNI调用C代码,那么Go语言则可使用CGO调用C语言代码。     当前就遇到了一个现实的场景,即我们使用go语言开发git hook,主要实现权限验证,大文件二进制验证等功能。它使用开源git2go,而git2go...

2018-07-08 10:25:48 1321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除