- 博客(527)
- 资源 (1)
- 收藏
- 关注
原创 鸿蒙hvigor 2.4.2 编译构建过程流程简单分析
这一步骤比较复杂,包括task注入,依赖构建,taskgraph构建,最后执行具体的task。前言:任何开发工具的编译构建流程都是很重要的,熟悉整体流程方便后续编译问题排查。2、initProjectWorkSpace(初始化项目工作环境)1、parseCommand(解析命令行参数以及设置基本的命令)3、startHvigorBuild(开始执行构建命令)这一步骤主要确保依赖安装。
2024-07-24 15:47:11
148
原创 macbook使用swichhost失灵排查
后来通过查看活动监视器,发现仍然有多个switchhost进程在使用,即使桌面上关闭掉switchhost也不能彻底关闭掉后台switchhost进程。所以通过shell,kill pid方式来关闭掉所有switchhost进程。之后域名映射恢复正常。很明显已经切过去了,但是域名对应地址还是没过去。
2024-04-09 17:04:19
216
原创 idea导入eclipse项目记录
本来想着会有困难,因为原始项目不是maven项目,并且是j2ee。导入完了以后报错,报tomcat的一些包没找到。根据你安装的tomcat目录找到下面的lib目录导入到mudule即可。eclipse虽然是免费的但是着实难用(可能是自身不熟悉),就连看class的源代码还得去市场下个插件,结果还搜索不到。全家桶的的用户来说,用eclipse真的太痛苦。所以迁移eclipse到idea。然后添加tomcat模板,添加artifacts。
2024-04-07 11:16:49
261
原创 鸿蒙开发报错解决方案: cannot be smaller than version 10 declared in library [:library]
鸿蒙开发报错解决方案: cannot be smaller than version 10 declared in library [:library]
2024-03-06 18:28:37
1892
原创 devecho stuido npm 失败
使用华为推荐的设置npm 代理方式仍然无效。还是得使用npm 命令去设置代理。最后使用自己的代理加载成功,使用华为推荐的代理不成功,不清楚什么原因。
2023-12-11 17:52:45
386
1
原创 Android maven could not get http://192.xx
红色框内的代理打开了,注释点问题解决。android studio有自身的代理文件,不依赖windows系统的代理配置,即使set http_proxy=也是无效的,只能通过gradle.properties的代理设置生效。网页流程仓库ip都能访问,android 发包出现如上提示。原来我电脑自身使用了 vpn,导致。
2023-10-10 17:15:21
219
原创 VUE elementUI 自定义组件效验器失效
只要给el-form-item 设置了prop,并且model有prop属性,根据此计算属性就会触发fieldValue的取值,从而使效验生效,也就是说,初始化属性一定得写。vue中的计算属性需要深刻理解。依赖属性,那么属性不能后面添加,这样就会失效。很细微的东西有时候搞起来真痛苦,还是深扒源码找到答案。其次可以利用手动触发效验的方法灵活控制。
2023-06-29 21:57:39
1324
原创 Android ndk fopen返回null问题排查
获取到应用的目录String path=Context.getExternalFilesDir(null).getAbsolutePath();由于最新android的分区目录权限比如/sdcard,不能直接通过代码去写内容。然后通过这个目录去fopen成功。
2023-06-07 20:51:22
310
原创 记一次Android studio ndk调试一直attaching native debugger
一直停留在这个阶段,加载缓存的so文件一直卡住不动,最后是由于我这块缓存有问题,删除掉缓存,让as重新生成缓存问题得到解决。
2023-06-07 19:45:34
193
原创 记一次chales连接oppo手机问题
wlan证书,ca证书都导入了,证书格式pem和cer格式也都导入了,还是报错。最后原因竟然是手机的时间出问题了,过年回来很久没开机,这个导致了ssl报错,也是服了,特此记录。
2023-01-29 11:45:10
199
原创 Android R文件分析
可以看的出当我们代码里面使用R 的时候能够直接引用到相关的静态变,静态变量都是int整数,并且不重复。编译R文件是在编译代码之前进行的,所以代码可以直接引用R文件。R文件是在编译资源的时候将工程和包所有的资源文件编译成一个final类,我贴一个简单工程的R文件,以方便大家了解。
2022-11-02 15:20:06
217
原创 记一次报错解决经历依赖重复
com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
2022-06-21 20:24:00
118
原创 Android 原生导入Flutter模块
问题1:java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE原因在于导入的flutter模块的compileSdkVersion 31和targetSdkVersion 31 过高,将他调低。注意将Flutter模块里面的Flutter工程调低。位置别搞错了。flutter模块包含了.android模块也包含了一个Flutter模块将对应的sdk都调成一致吧。问题2:setting.gradle 加入这两
2022-06-19 14:23:54
903
原创 flutter踩坑
的确花了不少时间来说说中间遇到的问题。1、dart sdk>=2.12.0 以后 null safety自动激活。这个可以混合模式解决,也可以升级非null safety 库。注意看官方迁移教程。我这里只是图编译通过。直接用了混合模式。其一:命令里面加 --no-sound-null-safety。截个图看看其次可以用?!方式。再次在文件最上头加上//@dart=2.9 。好吧,这属于混合模式解决 null safety。话说跟kotlin很像。大佬们开发出来的东西我就不吐槽 了。2、依
2022-05-17 08:30:35
805
原创 flutter踩坑-Could not get unknown property ‘compileSdkVersion‘ for extension ‘flutter‘ of type Flutter
刚开始很好奇,为啥android项目的app.gradle 文件会出现这种错误。因为我对flutter版本做过升级降级操作。把fullter版本放到原来版本就行。百思不得其解。stackoverflow也说是flutter版本问题,怎么折腾都解决不了。其实思路有问题。android项目是flutter create生成的。在进行flutter升降级操作后要及时更新下android或者ios工程。我的工程是初次创建,没有什么单独原生代码,所以我直接删除再重新来一次问题解决。....
2022-05-16 19:37:57
2354
原创 一次flutter依赖问题解决
初学flutter和dart,对于dart依赖管理不是很清楚。今天报个这个错。Because dnetty depends on sqflite ^2.0.2 which depends on flutter from sdk, flutter from sdk is required.So, because dnetty depends on flutter from hosted, version solving failed.其实说的是 sqflite依赖flutter(sdk 依赖)但是dne
2022-05-16 13:56:58
688
原创 windows 环境下利用protoc 生成dart文件
1、首先需要安装protoc程序,进入网站(https://github.com/protocolbuffers/protobuf/releases)下载合适版本的Protoc,2、上述protoc是能够生成各个平台语言的文件。本次 我是生成dart文件,所以需要下载一个dart的插件。$ pub global activate protoc_plugin。3、利用命令生成相应dart文件。本次我的配置如下:protoc --dart_out=…/out/ --proto_path=./ noti
2022-05-13 15:49:39
614
原创 记一次居家隔离android 调试环境的问题
疫情隔离在家办公。个人电脑用的openvpn连接到公司环境。不过做的是一个IM的程序。im是用的socket协议。所以需要将手机的socket5服务器代理设置为个人电脑ip。猜测openvpn应该是已经打通了socket代理。那么问题 在于如何将个人测试机设置socket5代理服务器。步骤:1、百度adb shell settings put global socket5_proxy 代理IP地址:端口号。日了狗了,测试机权限不够。android.permission.WRITE_SECURE_SET
2022-05-09 10:51:30
781
原创 记一次无比坑爹的编译报错Unable to find method ‘org.gradle.api.tasks.TaskInputs.property
引入一个老的工程,结果编译报这个错。搜索谷歌,有个大佬说是插件的版本跟gradle 版本不匹配。从gradle 4.0 到5.0有个巨大升级。真心吐槽。android studio搞得这个gradle真心难配置。后来把自己插件的版本都让调到最新问题解决。太难了吧。...
2022-04-27 19:24:35
2035
原创 记约束布局嵌套RecyclerView的坑
正常大家知道RecyclerView布局显示一般情况只会以屏幕的大小来布局,但是约束布局会打破这种平衡。比如我项目中用了pullRecyclerView,导致尾部footer显示不出来。被约束布局布局到了屏幕外。真是坑了。暂时不去距离分析原因了。大家记住,此种情况需要特别注意就是了。...
2022-04-15 21:47:02
417
原创 能够自定义后缀的TextView
废话不多说。此文章大部分参考了 https://github.com/TheCodeYard/EllipsizedTextView/blob/master/ellipsizedtextview/src/main/java/com/thecodeyard/ellipsizedtextview/EllipsizedTextView.kt 。改了一个小问题。废话不多说上代码。package com.example.testapplication;import android.content.Context
2022-04-15 10:54:04
1869
原创 记一次 git merge的骚操作
想着把master合并到功能分支,确发现confict冲突比较多。好吧还是要放弃。自己直接骚操作把本地得功能分支引用删除了,想要屏蔽本次影响。发现未果。搜索百度,发现了get merge --abort擦,发现fatal: There is no merge to abort (MERGE_HEAD missing). 心想肯定是自己把这个MERGE_HEAD 弄没了。这下进退都不知道咋弄了。继续搜索发现了一个get reset --merge。果然把这个merge信息都擦除了。问题得到解决。这还.
2022-03-29 11:17:09
3110
原创 android failed to initialize editor
经常由于更新的库比较多,导致android studio xml预览功能失效,提示错误:“failed to initialize editor”,不妨试试如下方法:1、File 菜单2、Invalidate Caches/Restart
2022-02-14 16:53:18
2945
1
原创 最近项目过程中踩坑记录
1、一个View就会有一个背景,ImageView也是一样的,假设你图片边缘是白色的,你背景也是白色的,你就看不到圆角效果,但是不要直接给ImageView一个背景,而是可以给ImageView的父布局来一层背景,并且给相应弧度圆角效果。下面贴出一个适用性很强的图片圆角类。public class NiceImageView extends AppCompatImageView {private Context context;private boolean isCircle; // 是否显示为圆形,
2021-12-31 20:43:24
1113
原创 在不编译的前提下如何debug Application的方法
实际上,你运行app程序,然后attach app程序就行了。但是Application方法或者首页闪屏方法等你attach上已经运行完毕自然无法debug上了。当然你可以重新debug 编译。如果在不编译的前提下可以如下。我们可以首先通过adb shell am set-debug-app -w ,然后再启动进程,此时应用程序会阻塞。然后你就可以attach 应用程序了。...
2021-11-04 13:48:42
221
原创 apk 的so包是arm平台的能够在x86的模拟器上运行么
由于我使用了android29的 模拟器结果安装就失败了,说so 架构不支持。我理所当然认为这个是不能支持的。恰好同事的安装成功了。很奇怪,不清楚是哪儿的问题。以为你pc机的虚拟化设置的原因,都开启还是不行。求助谷歌。发现这个问题还真是针对版本,google公司已经做了些支持。结论是:android 30的x86镜像是能够支持运行包含arm架构的so的apk。来看下谷歌的更新文档。https://developer.android.com/studio/releases/emulator#support_
2021-10-25 17:22:27
1596
原创 ScrollingViewBehavior 源码分析
代码路径位于:com.google.android.material.appbar.AppBarLayout首先看下构造方法:分为无参和有参两种类型。有参方法主要是设置了behavior_overlapTop这个值。暂时不看这个值。 public ScrollingViewBehavior() { } public ScrollingViewBehavior(Context context, AttributeSet attrs) {
2021-09-01 17:18:59
706
原创 SF中DispSync.cpp源码分析
源码位置位于: /frameworks/native/services/surfaceflinger/DispSync.cpp先来看下构造方法:关键是初始化了DispSyncThread线程变量,暂时不看。看下init方法。0void DispSync::init(bool hasSyncFramework, int64_t dispSyncPresentTimeOffset) {391 mIgnorePresentFences = !hasSyncFramework;392 mPr
2021-08-26 14:22:02
287
原创 HWComposer源代码分析
代码路径为:/frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp 代码版本为android P此类跟硬件合成Vsync信号有关系。这篇文章主要跟踪下硬件合成Vsync的过程。废话不多说,先看下构造方法。可以看到构造方法传入一个Composer,然后强转为 mHwcDevice变量。目前这个就是唯一的构造传入参数。遇到了一个新的类,android::Hwc2::Composer,这个类实现在/framew
2021-08-26 13:41:23
970
原创 记一次git “unable to update local ref”的经历
完整错误日志:error: cannot lock ref 'refs/remotes/origin/bugfix/ANDROID-8909': is at 9d44757e3ac45e670f3d06a7419238a7fc01a34f but expected ce63e95a1cd0a024413eb147ca1a2dc118ad72beFrom 192.168.99.68:android/biyao-app-android ! ce63e95a1c..9d44757e3a bugfix/AN
2021-07-29 12:07:25
970
1
转载 git pull时遇到error: cannot lock ref ‘xxx‘: ref xxx is at (一个commitID) but expected的解决办法
git pull时遇到error: cannot lock ref ‘xxx’: ref xxx is at (一个commitID) but expected的解决办法在执行git pull时遇到如下错误:error: cannot lock ref ‘xxx’: ref xxx is at (一个commitID) but expected1遇到这个错误会导致git pull失败。问题原因原因是你这个git工程的.git/refs目录下跟踪的某些git分支,在git pull的时候,与远端的
2021-07-28 16:31:20
4651
1
原创 SurfaceView源码分析
SV继承自View,但是并不是利用View的Draw来进行绘制。而是直接跟SurfaceFlinger进行通信。那么看下具体SV是怎么实现这个功能的,它的用法如何?还是先从构造方法开始看起。 public SurfaceView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes);
2021-06-17 21:25:59
335
1
原创 Art系列<二>
这篇文章分析主要分析Art虚拟机的init方法。主要的分析我也直接写到了代码注释上面。废话不多说,还是一行一行代码分析吧。bool Runtime::Init(RuntimeArgumentMap&& runtime_options_in) { // 看起来是对环境进行一个快照。 env_snapshot_.TakeSnapshot(); //move 实际是一个类型转换。 RuntimeArgumentMap runtime_options(std::move(runti
2021-06-10 15:30:08
477
原创 Art系列<一>
Art虚拟机是android 性能加速的保证。有必要对其源码进行深入探讨。废话不多说,先上代码。代码位置:/art/runtime/runtime.cc。还是从运行时构造方法开始说起。Runtime::Runtime() : resolution_method_(nullptr), imt_conflict_method_(nullptr), imt_unimplemented_method_(nullptr), instruction_set_(kNone)
2021-06-10 14:15:48
308
原创 SurfaceFlinger系列<一>
此为SurfaceFlinger一个系列文章,旨在通过研读SurfaceFlinger源码弄清楚SF整个业务流程。好吧,废话不多说,SF相关代码位置还是从类继承关系来看看吧。class SurfaceFlinger : public BnSurfaceComposer, private IBinder::DeathRecipient,#ifdef USE_HWC2 private HWC2::Composer
2021-06-09 14:51:20
568
原创 Looper源代码解析<一>
代码位置位于:aosp\system\core\libutils\Looper.cpp这个类在handler机制,SurfaceFlinger中消息调度机制都起到了关键作用。先来看下这个类的构造方法。Looper::Looper(bool allowNonCallbacks) : mAllowNonCallbacks(allowNonCallbacks), mSendingMessage(false), mPolling(false), mEpollFd(-1), mEp
2021-06-09 11:31:28
425
1
原创 Android上利用epoll机制实现手机服务器?
废话不多数。先上代码。server.cpp#include <jni.h>#include <string>#include <cmath>#include <sys/epoll.h>#include <iostream>#include <sys/socket.h>#include <sys/epoll.h>#include <netinet/in.h>#include <arpa/in
2021-06-08 15:08:13
450
2
原创 如何利用android交叉编译出能够直接在手机上运行的文件?
想必每个搞android开发的都想自己造个工具能够给自己手机使用,当然我说的是native工具。假设我们会写简单的c/c++代码,那么如何编译出适应各个平台架构的elf 可执行文件呢,废话不多说直接看代码。armv7a-linux-androideabi21-clang++ test.cpp -o test -pie -fPIE -static-libstdc++armv7a-linux-androideabi21-clang++:这个是ndk的交叉编译工具,位置位于比如说我的环境:F:\ndk\a
2021-06-05 19:37:53
508
4
OpenCV与OpenGL实现增强现实
2017-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人