- 博客(150)
- 资源 (1)
- 收藏
- 关注

原创 C++基础
变量定义不仅声明了变量的名字和类型,而且为其分配内存并可选地初始化变量。作用域类型可见性生存期示例全局作用域在整个程序中可见程序开始到结束局部作用域仅在函数或代码块内部可见控制流离开作用域时被销毁块作用域仅在大括号内可见控制流离开块时被销毁类作用域在类的所有成员函数中可见与类的实例一起存在命名空间作用域在命名空间内可见程序开始到结束使用#define预处理器。使用const关键字。5.6.1#define预处理器#define是一种预处理器指令,通常用于定义宏常量。
2024-10-17 15:37:24
995
1
原创 安卓源码学习之【导航方式切换分析及实战】
继续使用上篇文章的 OOBE 项目,新建一个,当进入欢迎界面后点击进入该界面布局如下:点击该界面的 OK 按钮,则结束开机向导流程,需要将中的结束开机向导流程代码拷贝过来,选择导航方式调用代码即可,所以@Override@Override} else {});break;break;break;} });
2025-03-26 17:32:40
398
原创 安卓源码学习之【开机向导定制 OOBE/Provision源码分析】
是 “”(开箱体验)的缩写。它指的是用户在首次使用 Android 设备时所经历的初始设置过程。Provision 在 Android 系统中是一个关键的,主要用于设备首次启动或系统升级后执行基础配置,确保设备进入可用状态,引导用户进入初始化的操作,就是开机向导。Provision就是谷歌为我们设计的一个 OOBE 示例,Provision其中 DefaultActivity 就是引导页的默认 Activity:将该 Activity 排除在最近任务列表(Recent Tasks)之外。
2025-03-24 17:08:49
1118
原创 我的创作纪念日
起初只是为了记录Bug,因为刚入行,什么都不会,偶尔记录下工作中解决的问题,防止以后再犯同样的毛病,好记性不如烂笔头嘛,而且就算以后忘记了,打开csdn直接看发的博客就行了,学的东西不记录下来,很容易忘记,而写一篇“好看”的博客,又不是很容易,只能说慢慢来吧,写的东西多了起来,就熟能生巧了。只有你真的去写了,才能体会到,写一篇好的技术博客,需要花费多大的时间和精力在文章上面,而且还需要一定的技术能力的积累和沉淀,才能出口成章,否则真的是自己都不知道自己再说什么。平凡的生活,唯有努力,才是正解!
2025-03-24 09:48:16
163
原创 安卓源码学习之【系统属性与 ContentObserver】
在 Android Framework 中, 类用于访问和操作系统属性。系统属性在 Android 系统中广泛用于存储和检索配置信息。主要方法1.2 使用示例获取系统属性设置系统属性获取整数、长整数和布尔值1.3 注意事项权限:某些系统属性可能需要特定权限才能读取或修改,特别是在非系统应用中。不可滥用:系统属性用于存储全局配置参数,不应滥用或频繁修改,以免影响系统稳定性。性能:频繁访问系统属性可能会影响性能,建议将其值缓存到内存中以优化性能。1.4 总结 类在 Android
2025-03-19 13:58:51
537
原创 Android源码学习之Overlay
在 Android Framework 开发中,Overlay 主要用于修改和替换系统或应用的资源,而无需直接修改源码,与源码解耦。Overlay 机制可以分为 两种类型:系统在编译的时候会生成两个 APK,一个Overlay,一个是原来的 APK。在运行时,系统会解析这个应用是否有Overlay,如果有的话,会先去Overlay中查找,而不是向原来的 APK 中查找资源(比如 res 目录下的:文字、图片、配置等资源)。静态Overlay要求有源码的情况才能使用,一般用在修改系统源码应用属性时使用。在系统
2025-03-14 17:59:15
732
原创 Android源码学习之开机动画
WIDTH:动画的宽度(像素)。HEIGHT:动画的高度(像素)。FPS:帧率(每秒播放的帧数,例如 60)。TYPE:动画段的类型:p:可被暂停的动画段。c:必须播放完成的动画段(一般不会用这个,会影响开机速度)。COUNT:动画段的播放次数:0:无限循环,直到开机完成。1或其他正整数:播放指定次数。PAUSE:动画段结束后停留的帧数。PATH:动画段对应的资源目录(如part0#RGBHEX(可选):背景颜色,格式为#RRGGBB。CLOCK。
2025-03-12 09:26:10
860
原创 Android12 系统源码编译及踩坑全攻略
Windows 11虚拟机:VMware-workstation-full-17.6.2-24409262。
2025-03-11 16:19:55
698
原创 重学 Android 自定义 View 系列(十一):文字跑马灯剖析
一个可以横向滚动和纵向滚动的自定义文字跑马灯View,支持水平和垂直滚动、多段文本展示、点击事件回调等功能。该View 由是基于的自定义视图,功能包括:1.1水平滚动文本从右向左滚动,支持多段文本循环展示。每段文本滚动结束后可以设置停留时间。1.2垂直滚动文本从下向上滚动,支持多段文本循环展示。如果文本长度超过视图宽度,会自动触发水平滚动,直到文本完全显示。1.3点击事件支持点击暂停/恢复滚动。提供点击事件回调,返回当前滚动文本的下标和内容。1.4自定义属性。
2025-03-07 14:07:28
1066
原创 Shell学习(6/6) 输入/输出重定向-文件包含
在 Shell 脚本中,文件包含可以通过多种方式实现,最常见的是使用source或命令。这种方式允许你在当前 Shell 环境中执行另一个脚本,使得变量、函数等可以在当前脚本中使用。
2025-02-28 11:01:38
880
原创 Shell学习(4/6) printf 命令-test 命令
是 Shell 脚本中用于条件测试的命令,通常用于判断文件属性、字符串比较和数值比较。a 就是 and 类似于 Java 的 &&,o 就是 or 类似于 Java 的 ||命令是 Shell 脚本中用于条件判断的重要工具,掌握其用法有助于编写更复杂的脚本。是一个功能强大的命令,用于格式化输出。它类似于 C 语言中的。函数,允许开发者按照指定的格式打印文本和变量。:变量引用时建议加双引号,避免空值或空格问题。等语句结合使用,进行条件判断。
2025-02-28 10:39:05
918
原创 Shell学习(3/6) 运算符-echo命令
类型描述示例算术运算符用于整数计算expr 5 + 3$((a + b))关系运算符比较整数值布尔运算符逻辑与、或、非字符串运算符比较字符串值和长度文件测试运算符检查文件类型或权限。
2025-02-28 10:22:26
649
原创 Shell学习(2/6) 传递参数-数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为 $n,与大部分编程语言类似,数组元素的下标由 0 开始。通过数组的索引访问元素,索引从。通过循环可以遍历数组的元素。为执行脚本的第一个参数,为执行脚本的第二个参数。
2025-02-27 12:00:02
538
原创 Shell学习(1/6) 教程-变量
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。3. 输入您的脚本内容。例如使脚本变为可执行文件。在 She
2025-02-27 11:54:18
957
原创 Android Studio 提示 !Failed to initialize editor
还有一种原因就是JVM内存爆了,导致预览界面加载失败,修改。估计对大多数人都无效,就不说了。
2025-02-18 15:48:06
336
原创 Ubuntu使用adb报错:insufficient permissions for device: user in plugdev group; are your udev rules wrong?
【代码】Ubuntu使用adb报错:insufficient permissions for device: user in plugdev group;
2025-02-13 14:07:41
329
原创 Qt学习之 - 信号槽
2.1 自定义信号自定义信号需要使用signals关键字声明。注意:信号只需声明,不需要实现。头文件声明Q_OBJECTpublic:signals:2.2 自定义槽槽函数是普通成员函数,需要用slots关键字声明。头文件Q_OBJECT实现文件qDebug() << "收到有值的自定义信号:" << value;2.3 连接自定义信号与槽// 手动发出信号2.4 总结特性系统信号槽自定义信号槽声明不需额外定义signals声明连接方式直接使用自定义。
2025-02-07 15:45:59
1074
原创 QT开发-T113 Linux 主板QC配置套件
此篇文章用于记录在Linux主板上使用QT开发项目的套件配置步骤进入QC软件,点击选择项目对应的QT Version : 一般有一个项目对应的qmake 文件,选择导入即可如果首次导入提示),因为可能新的项目 有些路径和你的不匹配,需要先编译一下,编译可能耗时一两个小时python等工具,按照提示进行sudo下载即可,继续编译。不要 执行make clean命令,会导致编译从头开始,编译过程中 能解决尽量解决,解决不了,也不影响后续 继续导入qmake。
2025-01-20 09:56:14
330
原创 重学 Android 自定义 View 系列(十):带指针的渐变环形进度条
该篇文章根据前面重学 Android 自定义 View 系列(六):环形进度条拓展而来。绘制指针的步骤:调整指针的绘制半径:确保指针贴合圆环外侧,加入一个 outerSize 参数用于控制指针漏出圆环的长度。计算指针位置:使用三角函数计算图片中心点坐标。旋转画布并绘制图片(关键):将画布旋转到指定角度后,再绘制指针图片。用到的三角函数原理如下,再重温一下学校的知识:),因为在Java中Math函数计算三角函数用的是弧度而不是角度,所以代码使用了进行了角度转弧度。
2025-01-02 16:25:10
1031
原创 使用安卓NDK 交叉编译动态库、静态库基础入门
本篇博客将详细介绍如何在 Windows 环境下使用 Android NDK 交叉编译 C 文件,生成静态和动态库,并在 Android 项目中使用这些库。编译器概述特点GNU项目开发的编译器集合,支持多种编程语言,包括C、C++、Fortran等。开源免费:遵循GPL许可,广泛应用于开源项目。跨平台支持:支持Linux、Windows、macOS等多种操作系统和硬件架构。强大的优化能力:提供多种优化选项,生成高效的目标代码。G++GCC中的C++编译器驱动程序,专门用于编译C++源代码。
2024-12-31 14:26:15
1338
原创 uniapp uts插件实现AIDL与原生安卓通信
上周刚完成uniapp原生插件的开发调试,正兴冲冲地去上架,结果竟告知官方不再接收原生插件了!TNND,我搞了几天,到最后发现做的都是无用功 /(ㄒoㄒ)/~~莫得办法,谁让人家是官方呢,研究uts插件吧!不看不知道,一看都是坑,人家是摸着石头过河,我简直是摸着河床过河!这UTS语法简直了!!!首先你要了解安卓的AIDL,其次要了解Kotlin语言,因为UTS和Kotlin很像,学起来不至于你崩溃😆uniapp Android 原生插件开发(Module 扩展为例·2022)
2024-12-05 17:45:47
1653
原创 浅谈网络基础知识
IPv6(Internet Protocol version 6)是下一代 IP 协议,设计用来取代 IPv4。IPv6 地址是。
2024-12-04 16:47:05
1029
原创 重学 Android 自定义 View 系列(九):侧边字母选择器
本文来实现一个侧边字母选择器,很常见的一个控件,和上篇文章星星评分用到的关键技术点类似,难度不大,本篇再来温故知新一下。难度不大,前面文章和接下来几篇文章都是打基础的,只有基础打牢了,遇到高级View才能不发怵,🤭。再会!
2024-11-28 23:27:19
1038
原创 实现uniapp开发安卓应用使用AIDL与原生安卓通信
最近公司有开发原生插件,让uniapp与原生安卓使用AIDL通信的需求,奈何本人是原生开发,没有接触过uniapp啊,遂学,从官方文档到百度各种搜索,大约三天时间终于调通,属予作文以记之~技术前提 要有一定的原生安卓及AIDL开发经验,不至于你会看懵逼。在开发中遇到任何问题,请仔细对照上面链接步骤进行操作,官方文档还没有他的清晰。
2024-11-27 16:59:24
1129
原创 重学 Android 自定义 View 系列(八):星星评分控件(RatingBar)
本节实现一个常见的星星评分控件,广泛应用于各种评价类应用中,比如电影评分、商品评价等。难度不大,直接开搂!
2024-11-25 23:11:24
671
原创 分析android :The binary version of its metadata is 1.8.0, expected version is 1.5.1.等系列问题
当打包项目时会出现标题错误,有时候会弹出此错误但不影响打包,有时候会导致直接打包失败但可以直接在AS中安装,很是头大。以我报错内容为例:【android其元数据的二进制版本为1.8.0,预期版本为1.5.1】,刚开始以为项目中有使用了的版本呢,结果一顿搜索下来并未发现 此版本的任何信息?心里一万个草泥马狂奔。开始百度~之前遇到这种问题,大都是咔咔一顿复制粘贴,又是强制使用某个Kotlin版本又是不影响打包就忽略报错,想解决又心有余而力不足,事实证明,只要慢慢分析,就没有解决不了的问题,哈哈,再会!
2024-11-22 16:57:37
1013
原创 重学 Android 自定义 View 系列(七):仿58同城加载动画
本文将实现早期58同城一个带有弹跳效果的加载动画,且结合图形变换(圆形变正方形、正方形变三角形等)实现一种动态、富有表现力的加载效果。一个很有意思的自定义View,在这篇文章中你可以学到到路径使用,安卓动画组合使用等知识。再会!
2024-11-20 16:05:26
966
原创 重学 Android 自定义 View 系列(六):环形进度条
- 进度条的最大值 --> < attr name = " maxProgress " format = " integer " /> < attr name = " progress " format = " integer " /> < attr name = " circleBackgroundColor " format = " color " />
2024-11-13 18:49:56
1534
2
原创 重学 Android 自定义 View 系列(五):文字变色的应用
上一篇介绍了文字变色的原理,本篇文章就简单介绍下其应用。原理都掌握了,应用还不是手拿把掐😁重学 Android 自定义 View 系列(四):文字变色结束,睡觉!wolai。
2024-11-12 22:33:46
426
原创 安卓属性动画插值器(Interpolator)详解
插值器(Interpolator)是用来控制动画执行速率的工具。在安卓的动画框架中,插值器主要用于指定动画从开始到结束的时间进度曲线。简单来说,插值器控制了动画的“快慢”,即时间与进度之间的关系。安卓提供了一系列内置的插值器,可以帮助开发者更好地控制动画的节奏,开发者也可以通过自定义插值器来实现更独特的效果。
2024-11-09 17:06:34
1891
原创 Android JNI 技术入门指南
JNI是 Java 与其他编程语言(通常是 C 或 C++)之间的接口,允许 Java 代码与底层的本地代码进行交互。通过 JNI,我们可以在 Java 代码中调用本地(native)方法,或者让本地代码调用 Java 方法。之前一直对JNI望而却步,真正学过后回头看看,也不是那么的难,难的是你不主动去学。所有伟大,都源于一个勇敢的开始!共勉!
2024-11-09 16:47:04
1654
原创 重学 Android 自定义 View 系列(三):自定义步数进度条
本篇文章主要是实现仿QQ步数View,很老的一个View了,但技术永不落后,开搂!为了使该控件在 XML 布局文件中可配置,我们需要定义一些自定义属性,例如外圈颜色、内圈颜色、边框宽度、文本大小和文本颜色。这些属性可以通过文件来定义:
2024-11-09 14:39:33
995
原创 重学 Android 自定义 View 系列:动手实现专属 TextView
前面一篇介绍了自定义View的基础概念(皮毛),接下来全部是自定义View实战,让我们一起开启自定义View之旅吧!在中,我们定义了三个自定义属性:xText(文本内容)、xTextColor(文本颜色)、xTextSize(文本大小)。
2024-11-07 14:48:46
1101
原创 重学Android:自定义View基础(一)
作为一名安卓开发,也被称为大前端,做一个美观的界面,是我们必备的基础技能,可能在开发中我们最常用的是系统自带的View,因为他能满足绝大部分需求,难一点的我们也可以上Github上找个三方库使用,少数情况下会让我们进行自定义View,当然这不代表着我们可以不去掌握其原理,因为它是通往中高级程序员的必经之路,也是大厂面试的热门知识,只有熟练掌握其核心原理,才能让我们在后续的开发中游刃有余。
2024-11-05 14:49:36
1002
原创 重学Android:从位运算到二进制表示(零)
以下内容针对非科班同学,可以快速掌握位运算和二进制表示等计算机基础运算知识,看过源码的同学都知道,源码中大量运用了位运算知识,如果你对这方面不了解的话,看起来是比较困难的,如果你工作接触到蓝牙数据,串口数据收发等内容,这方面更是你必须了解的。
2024-11-05 14:23:34
1112
原创 在Android中,将 .cpp 文件编译成共享库(.so 文件)
一般在AS你新建C++项目会默认如下结构目录,要是用现有项目,你也可以手动创建。点击 Android Studio 顶部的。文件中,确保添加 CMake 的支持。的文件,该文件包含编译共享库的指令。,因为在JNI开发中,看到过它的影子。在 cpp 文件夹中创建一个名为。过时了,一般在老项目中比较常见。按钮,确保你的项目能够识别。在 app 目录下的。
2024-11-01 18:17:45
1077
4
libopencv-info.so
2023-07-20
与元素类型 "item" 相关联的 "name" 属性值不能包含 '<' 字符 【annotations.zip】
2021-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人