- 博客(10)
- 收藏
- 关注
原创 鸿蒙动态共享包har依赖与使用
HAR(Harmony Archive)是OpenHarmony静态共享包。可以包含js/ts代码、c++库、资源和配置文件。通过HAR,可以实现多个模块或者多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。创建module library,之后在terminal中切到Entry项目中添加依赖使用者在entry目录下新建lib目录,把har文件放到该目录下在oh-package.json5中添加依赖sync之后就可以正常使用了。
2024-04-18 17:09:45
1130
原创 发布开源库到OpenHarmony三方库中心仓
发布正式库时要把CHANGELOG.md,readme.md,oh-package.json5中内容写清楚,否则审核不通过。在个人中心复制发布码,在命令行执行:ohpm config set publish_id your-publishId。这个问题是需要在Library目录下增加LICENSE文件,进行开源声明。下面是一些开源库的申明文件,可以参考。发布成功后会进入人工审核,由于我使用的是测试项目,审核没通过。这个问题的原因是生成公钥的方式不对,用这个命令重新生成。注册账号,进入个人中心,
2024-04-18 11:09:58
577
原创 Flutter aspectd(五)全局监控flutter生命周期
简介当我们在做性能收集时,需要全局的知道哪个页面目前在展示,哪个页面关闭了,从而做一些收集工作,在Android中我们可以通过registerActivityLifecycleCallbacks来得到任何一个正在展示页面的生命周期如下:applicationContext.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { override fun onActivityCreate
2021-07-26 16:54:55
343
1
原创 Flutter aspectd (四) 全埋点实现
简述aspectd的简单原理清楚了,下面尝试实现一下全埋点,参考大佬文章:Flutter之全埋点思考与实现获取到点击的按钮 @Execute("package:flutter/src/gestures/binding.dart", "GestureBinding", "-dispatchEvent") @pragma("vm:entry-point") dynamic hookHitTest(PointCut pointCut) { PointerEvent pointE
2021-06-23 10:31:47
347
原创 Flutter aspectd(三)使用
@pragma(‘vm:entry-point’)在AOT编译中,如果没有被引用到的代码会丢弃掉,而AOP代码是不会被引用,需要使用该方式告诉编译器不要丢弃代码PointCut/// Object carrying callsite information and methods which can enable you to/// call the original implementation.@pragma('vm:entry-point')class PointCut { /// P
2021-06-23 10:21:39
790
原创 Flutter aspectd (二)源码解析
引导在上一篇文章中,我们进行了apply patch文件,那么我们来看看apply的文件,具体做了哪些事情。可以看到是在common.dart文件做了更改,和新加了一个aspectd.dart文件common.dart文件该文件所在目录:packages/flutter_tools/lib/build_system/targets/common.dart可以看到在build方法新增了如下代码: @override Future<void> build(Environment e
2021-06-02 11:14:47
256
原创 snapshot、dill概念理解
在学习flutter过程中,遇到一些snapshot、dill文件,不知道它们是什么,是做什么的。其实它们是一种dart的编译产物。而snapshot和dill在一些情况下是同一个东西。dart产物类型exe:可执行文件,自带了精简版的Dart运行环境aot-snapshot:一种特定架构的文件,没有dart运行环境jit-snapshot:一种特定架构的文件。它里面是在程序运行期间生成的已解析的类和已编译的代码kernel snapshot:可移植的二进制快照js:可部署的JavaScrip
2021-05-13 15:06:29
838
原创 flutter engine编译,方便阅读源码
获取Depot_tools脚本工具集depot_tools是google用来管理Chromium源码的工具集,主要有gclient、ninja、repo等。gclient和repo都是用来检出项目源码的脚本。gclient主要依赖于.gclient与DEPS2个配置违建进行源码的依赖检出。而repo主要依赖于manifest.xml配置文件进行项目模块源码检出。获取工具集git clone https://chromium.googlesource.com/chromium/tools/depot_t
2021-05-10 11:05:29
483
1
原创 Flutter aspectd (一) 入门(1.22.2分支)
下载flutter 源码我这里使用的是1.22.2,用的是fvm管理的包,你可以使用其他方式fvm install 1.22.2下载aspect源码这里最好是使用git下载,方便切换分支(不要直接下载zip)git clone https://github.com.cnpmjs.org/XianyuTech/aspectd.git也可以使用sourceTree安装aspectd切换到flutter的git目录就是我们上面下载下来的源码,点击进去有个.git目录cd ${pat
2021-04-30 15:36:30
299
1
原创 Android7.0之后不能抓包--终极解决方案
当升级targetSdkVersion 到 28 后发现在 Android 7.0 以上机型不能抓包了。上网搜了一下有很多解决方案,但都有弊端,最后参考墙外的一篇文章找到了一个最优解决方案方案一:1.添加res/xml/network_security_config.xml<?xml version="1.0" encoding="utf-8"?><network-s...
2020-01-17 15:21:35
8090
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人