- 博客(57)
- 收藏
- 关注
原创 C语言学习关键笔记
例如,当你在代码中使用 printf 函数时,实际上是在调用 stdio.h 头文件中定义的函数。如果没有包含相应的头文件,编译器将不知道 printf 是什么,从而无法编译代码。因此,头文件可以看作是一个预先准备好的代码库,你可以从中选择需要的功能来提高代码效率。stdio.h解释:是C语言标准库中的一个头文件,它定义了处理文件和标准输入/输出流的各种函数和类型。在C语言编程中,头文件扮演着至关重要的角色。它们是扩展名为 .h 的文件,头文件允许程序员在不同的源文件中重用相同的代码,而无需重复编写代码。
2025-03-27 20:32:54
223
原创 记:app启动更换系统语言,app会重走生命周期
当更改系统语言后,会在这个activity中的onConfigurationChanged去响应。当系统应用设置当前系统语言,会导致当前系统应用app重启,重走生命周期,在。中添加configChanges,不随着系统语言重走生命周期。
2025-03-19 20:01:59
187
原创 Linux 常用命令
10.13 显示文件系统的磁盘空间使用情况。10.17 (需要下载meld软件)自带的文件比较命令。10.15 结束进程。10.16 查看网络。
2025-03-13 14:06:02
234
原创 Linux之系统文件目录理解
字符设备(Character Devices):以字节流的形式进行数据传输,通常不支持随机访问。例如,串口、键盘等。块设备(Block Devices):以固定大小的数据块进行传输,支持随机访问。例如,/dev/sda 表示第一个 SATA 或 SCSI 硬盘,/dev/sdb 表示第二个硬盘。表示伪终端(pseudo-terminal),常用于远程会话或图形界面中的终端模拟器。用于循环设备(loop device),可以将文件挂载为块设备。特殊设备文件,丢弃所有写入它的数据,读取时返回 EOF。
2025-03-12 18:26:07
223
原创 设置中静态壁纸(WallpaperPicker)添加定制壁纸图片
1.WallpaperPicker下的res的wallpapers.xml 中增加壁纸配置在android/packages/apps/WallpaperPicker/res/values-nodpi/wallpapers.xml 中增加壁纸配置:2.在android/packages/apps/WallpaperPicker/res/drawable-nodpi/添加图片,命名为wallpaper1.png 和对应的 wallpaper1_small.pngwallpaper2.png 和对应
2025-03-07 15:09:36
192
原创 Android系统分区概述和编译镜像包理解
【boot.img(Linux内核镜像): Android系统中,通常会把zImage ( 内核镜像uImage文件) 和ramdisk.img打包到一起,生成一个boot.img镜像文件,放到boot分区,由bootloader来引导启动,其启动过程本质也是和分开的uImage&ramdisk.img类似,只不过把两个镜像按照一定的格式合并为一个镜像而已。(相当于你电脑的C盘,用来放系统。引导分区:顾名思义,一个引导进入系统的分区,包含Android的kernel(内核)和ramdisk(内存盘)。
2025-02-11 17:25:48
362
原创 jadx反编译使用
可修改jadx-gui.bat的将4g改变8g,反编译使用不会那么卡。点击bin文件夹种的jadx-gui.bat,点击启动。例子:apk字符串找寻。
2025-02-11 10:56:27
139
原创 FragmentActivity理解
兼容性:FragmentActivity 提供了对 FragmentManager 和 FragmentTransaction 的支持。定义:FragmentActivity 是 AppCompatActivity 的基类,继承自 Activity。用途:FragmentActivity 主要用于内嵌 Fragment,并提供对 Fragment 的支持和管理。
2024-10-30 11:06:57
252
原创 app的安装路径解析和应用存储数据路径解析
特权系统应用:/system/priv-app/普通系统应用:/system/app/普通三方app:/data/app/
2024-09-02 09:18:03
1897
原创 Android窗口类型的优先级
其中,最高级别的窗口类型是 TYPE_SYSTEM_ERROR 和 TYPE_KEYGUARD。这两种类型的窗口可以覆盖所有其他类型的窗口,通常用于显示系统级的重要信息或错误提示。TYPE_BASE_APPLICATION(应用基础级别)TYPE_KEYGUARD_DIALOG(锁屏对话框级别)TYPE_SYSTEM_OVERLAY(系统覆盖级别)TYPE_SYSTEM_DIALOG(系统对话框级别)TYPE_SYSTEM_ALERT(系统警告级别)TYPE_SYSTEM_ERROR(系统错误级别)
2024-08-29 10:56:30
353
原创 [Launcher3] device_profiles.xml调整桌面和各个图标的距离
【代码】[Launcher3] device_profiles.xml调整桌面和各个图标的距离。
2024-08-02 10:21:26
304
原创 2.记:static不能用于集合,数据会混乱(Java)
在Java中,static关键字用于声明静态成员,这些成员属于类本身,而不是类的实例。当static被用于集合(如List、Set或Map)时,这个集合就成为了所有类实例共享的单一实例。这意味着,如果你在一个地方修改了这个静态集合,那么从其他地方访问这个集合时,看到的也是被修改后的状态。这可能导致数据混乱,尤其是在多线程环境中,因为多个线程可能会同时修改这个集合,导致不可预测的行为和竞态条件。
2024-08-01 11:36:51
479
原创 1.记:两个List之间不能直接=赋值(Java)
这种情况下,list2并不是list1的一个独立副本,而是指向同一个List对象的引用。这意味着对list2的任何修改都会影响到list1,反之亦然。这就是所谓的“引用传递”而非“值传递”。1.两个List之间不能直接=赋值,这样数据会同步,数值copy要用addAll();
2024-08-01 11:33:22
298
原创 操作系统优先级概念
在操作系统中,优先级是一个用来决定进程(或线程)调度顺序的数值,它影响着处理器时间片(CPU time slice)的分配。在Linux系统中,优先级的设定可以帮助操作系统确定在多任务环境下,哪个进程应该优先获得CPU资源。普通优先级:通过nice值来表示,取值范围从-20(最高优先级)到19(最低优先级)。普通进程的nice值默认为0,用户可以通过nice命令或renice命令来调整进程的优先级。在Linux中,进程的优先级可以分为两大类:实时优先级和普通(或称作非实时)优先级。
2024-07-15 10:37:23
659
原创 view的初始化绘制流程
合成和显示: 最终,所有 View 的绘制结果都会被合成到一起,形成最终的屏幕输出。当 Activity 的 onResume 方法被调用时,视图层次结构变得活跃,ViewRootImpl 将开始执行绘制流程,确保所有 View 被正确地显示在屏幕上。在这个阶段,如果 Activity 的视图层次结构中包含的 View 之前没有被绘制过,或者由于某些原因需要重新绘制(例如屏幕旋转、配置变化、View 的状态改变等),那么 ViewRootImpl 将会开始执行绘制流程。
2024-07-10 14:15:03
361
原创 0.为什么要使用设计模式中的创建型模式
2.对修改关闭:意味着一旦一个软件实体被完成,就不应该因为需求的变化而修改其源代码,以减少修改引入的错误风险和维护成本。1.对扩展开放:意味着软件实体应易于扩展,以适应未来的需求变化,即可以在不改变原有代码的基础上,增加新的功能或行为。
2024-07-10 11:48:44
165
原创 1.创建型模式之单例模式
1.资源共享: 当一个对象需要被多个地方访问且保证数据一致性时,例如配置管理器、线程池、缓存等,单例可以确保所有访问都操作的是同一个实例,避免了资源重复创建和浪费。3.全局状态管理: 在需要维护整个应用程序的全局状态时,如用户登录信息、主题设置等,单例模式能提供一个集中管理的途径。4.线程池、缓存等工具类: 这些通常只需要一个实例来有效管理资源,避免每次创建新的实例导致资源浪费和潜在的并发问题。2.控制共享资源访问: 对于数据库连接、日志文件等资源,使用单例模式可以有效控制并发访问,减少系统开销。
2024-07-03 19:38:32
232
原创 fork和创建新线程的不同
forkfork:一个父进程创建一个子进程,子进程会拥有自己的独立内存空间,然后copy父进程的资源到自己的独立内存空间里面,这样子进程与父进程都在相互独立的内存空间中运行,需要通过进程间通信(如管道、共享内存、消息队列等)来实现数据共享。创建新线程创建新线程:在进程中创建线程,共享进程的资源,而且在多线程下可能会出现资源竞争的现象。
2024-04-09 10:59:05
181
原创 AOSP14源码下载及编译与debug调试
4.lunch sdk_phone_x86_64-userdebug(aosp自带手机模拟器产品名)5.启动emulator (先执行sudo chmod -R 777 /dev/kvm),设置Linux 构建环境,根据版本安装所需的软件包。存放代码的硬盘文件格式最好是ext文件格式!6.AS进行Choose Process调试,AOSP源码下载和编译步骤。
2024-03-25 15:54:14
1099
2
原创 Ubuntu配置环境变量
使用相同的用户打开新的终端时生效,或者手动source /etc/profile生效。1.1在用户目录创建一个bin目录(将需要添加到环境变量的程序放在这个文件夹里面)1.2.将bin目录添加到环境变量PATH路径(用户目录下的.bashrc文件)中。这种只在当前窗口有效,export是一个用于设置环境变量的命令。3.1.查看profile文件(没权限就chmod一下)1.3查看PATH的配置情况,冒号:分割不同的路径。
2024-03-06 11:15:46
3223
原创 View.inflate()和LayoutInflator.from().inflate()学习理解
View.inflate()和LayoutInflator.from().inflate()学习理解
2023-08-25 10:24:12
400
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人