自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 资源 (2)
  • 收藏
  • 关注

原创 自定义View(一)

视图的核心类是:View类View类是Android中各种组件的基类,如View是ViewGroup基类View的构造函数:共有4个,具体如下:// 构造函数1// 调用场景:View是在Java代码里面new的// 构造函数2// 调用场景:View是在.xml里声明的// 自定义属性是从AttributeSet参数传进来的// 构造函数3// 应用场景:View有style属性时// 一般是在第二个构造函数里主动调用;不会自动调用// 构造函数4。

2025-11-26 10:20:45 168

原创 安卓常用sdk和API

下面给你一份中常见的的清晰列表,适合作为知识大纲或面试准备。

2025-11-18 10:48:28 759

原创 新版android studio创建项目的一些问题

Gradle的离线模式不需要随便开启,这样依赖会添加无效,比如implementation "androidx.recyclerview:recyclerview:1.3.2",然后External Libraries中也找不到。解决方案如上图1 换镜像国内的 gradle-wrapper.properties中换为distributionUrl=https\://repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) // 改成允许项目级仓库。

2025-10-02 22:58:01 847

原创 app-5 控制卡升级

1.获取控制卡当前版本2.检查服务器最新版本3.下载升级文件(若有新版本)4.发送升级命令与文件数据5.处理升级过程中的各种状态与错误6.通过异步任务处理网络操作,通过回调方法处理控制卡返回的升级状态,包含完整的错误处理与用户交互逻辑。FTP用于从服务器下载升级包到本地设备,蓝牙用于将本地升级包传输给控制卡完成升级,二者分属不同阶段。★★★★★。

2025-08-15 17:09:21 830

原创 app-4 日志上传

广播在此处更适合处理后台任务结果通知,尤其当任务可能来自多个触发源、或需在组件间共享状态时,比普通回调更灵活且安全。

2025-08-14 22:59:47 648

原创 Context-01

上下文”。它代表了应用程序环境的当前状态信息和访问系统资源的接口。Context 是 Android 系统与应用组件(如 Activity, Service, Application, BroadcastReceiver, ContentProvider)之间、以及应用组件与系统资源(如布局、字符串、图片、系统服务)之间进行交互的桥梁。通过Context,可以:访问资源(getResources(), getString()等)访问系统服务启动组件操作文件系统(getFilesDir()等)

2025-08-10 16:48:58 950

原创 关于Android studio调试功能使用

优先级调试内容原因说明🥇设置断点所有调试的基础,精准定位问题起点🥈调试操作控制决定你能否高效进入/跳出代码逻辑🥉变量观察是否能发现真正的 bug 依赖它🟡调用堆栈分析理解执行顺序和逻辑非常关键🟠线程调试多线程环境下问题排查必备🟢热更新与即时运行提高调试效率但非必须🔵远程/真机调试环境特有问题才需要参考文献:Android Studio 调试机制及性能优化工具使用_androidstudio断点有哪几种类型-优快云博客。

2025-08-07 23:33:10 1034

原创 app-3

✅ Keystore = 密钥库文件(Key Store)它是一个二进制文件,用于存储加密密钥对(key pairs)后缀通常是.keystore或.jks在 Android 中,它用于签名 APK本质上就是一个“保险箱”,里面保存了你签名应用的“私钥”🔐Android 要求所有 APK 必须用数字签名才能安装Google Play 要求每次更新都使用同一个 keystore 否则无法升级✅ Key Alias = keystore 中每个密钥的“名字”

2025-08-06 23:26:42 713

原创 app-2

在起爆前,如果电流值显示偏大,也要进入设置界面通过快捷按键进行校准,注意要将安全开关打开,否则电流值异常要进行警报声,啊偶一样的错误声音出现。在MySoundUtil中使用res的raw下面的error.wav文件和success.wav文件。比如:获取进行机型判断的属性ro.product.model。主要利用下面的语句实现(错误声音为例),与build.gradle中保持一致。不同配置的机器调用的API不一样。

2025-08-05 21:47:40 414

原创 app-1

用于标记服务器版本(如“29N”表示内网)。用于自动生成当前打包日期。isRussian用来控制是否显示吉国(俄罗斯)Logo。这份文件主要实现了:加载配置和定义常量多渠道打包支持配置构建参数(版本号、签名、资源等)配置依赖版本控制提供 release 和 debug 构建类型。

2025-08-04 23:24:08 827

原创 软件测试模型(一)

RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的V模型。V模型是瀑布模型的扩展,将开发活动与测试活动对称排列,强调测试从开发早期阶段就开始设计,与需求和设计密切相关。

2025-08-04 22:12:17 465

原创 开发规范(一)移动端

选择Includes标签页 → 编辑添加自定义模板(示例)/*** 描述:$NAME*/

2025-08-04 22:11:03 241

原创 YModem在Android上的实现(四)

1)一开始流程没有走对,主要是蓝牙连接的雷达设备返回数据时,没有调用onDataReceivedFromBLE(bytes)方法,调用onDataReceivedFromBLE(bytes)方法后会进一步执行public void onReceiveData(byte[] respData),具体里面的case(如:case。前面的handle系列的方法,主要会对返回的值如:C,ACK,NAK进行分值处理!基于对协议规范进行逻辑修改!Step 1:修改manifest.xml。

2025-07-21 23:02:11 585

原创 移动端开发的package命名规范

要通过Ctrl + Shift + R进行全局替换(通常资源文件的import,build.gradle,manifest都可能存在旧包的引用)1)从不规范包名refactor再rename到规范包名后,Scope要选择All Places。3)通过Ctrl + Shift + F找不到旧包的引用之后,再进行以下操作。2)基于1),还要全局搜索是否还有旧包的引用,如果有,如下图。:全小写,符合 Java/Android 包命名惯例。后缀建议体现项目或模块,如。等,有利于模块划分与组织。

2025-07-20 10:47:19 403

原创 git GUI

Git可视化教程——Git Gui的使用[通俗易懂]-腾讯云开发者社区-腾讯云

2025-07-14 16:46:04 116

原创 Git commit message

Git —— Commit Message 规范介绍_git commit message-优快云博客

2025-07-14 15:33:42 316

原创 C codes运行(一)

将 C:\mingw64\bin 添加到系统环境变量 PATH。打开终端,输入 gcc --version,看到版本信息即成功。创建工作目录,如下图的c_demo,exe文件是后生成的。在VS code中安装相应的插件。红色框中的支持win10,11。(Windows)或。

2025-07-04 14:36:20 407

原创 kotlin学习路线

Lambda 表达式。

2025-06-25 10:36:16 308

原创 Android组件化和插件化开发

Android组件化和插件化开发-优快云博客

2025-06-20 23:45:07 392

原创 Android Studio Profiler使用

第5步生成内层泄漏日志之后,后面会显示内层泄漏个数和方法列表。如果Leaks的数目不是0,就会出现内层泄漏个数并显示黄色叹号。再根据references对应的类名,找到在项目中调用它的地方。然后就找到内层泄漏的地方啦。测试完成,选择MEMORY,选择_capture_ _heap dump,_然后点击record。开启一个新的分析会话(start a new profiling session),根据包名引入你手机目前运行进行分析的app;此时正常使用你的App功能,把可能出现内层泄漏的模块测试一下;

2025-06-19 20:02:16 618

原创 LeakCanary使用步骤

工具特点LeakCanary自动检测、快速定位、界面友好实时监控内存分配,可导出.hprof文件。

2025-06-19 18:47:18 612

原创 memory leak 和 OOM (内存泄露和内存溢出)

即指 程序在申请内存后,当该内存不需再使用但却无法被释放& 归还给 程序的现象下面,我将用一张图总结Android中内存泄露的原因 & 解决方案。

2025-06-19 16:55:18 953

原创 Android 性能优化

内存泄露和 OOM(内存溢出)是应用稳定性的致命伤,必须优先解决。ANR(主线程阻塞)与 UI 卡顿(Jank)严重影响用户体验,两者紧密相关。优化主线程耗时操作、提高渲染效率是预防关键。

2025-06-19 15:40:01 506

原创 android IPC 进程间通信

https://juejin.cn/post/7494695992878202914

2025-06-19 15:12:45 118

原创 android UI 布局

这个示例展示了 ConstraintLayout 的三种核心约束技巧:位置约束、尺寸百分比和链式连接,适合作为中等复杂度的布局参考。下方并排显示两个按钮("确定"和"取消")宽度占父布局 40%(使用百分比宽度)响应式布局:按钮宽度按比例自适应屏幕。点击按钮显示对应的 Toast 提示。按钮点击显示 Toast 提示。顶部显示居中标题"操作面板"在不同屏幕尺寸上保持比例布局。位于标题下方 32dp。水平居中于父布局顶部。文字大小为 24sp。宽度占父布局 40%

2025-06-19 11:05:30 308

原创 Android开发中的适配

在Android开发中,是确保应用在各种设备上都能良好运行和显示的关键。这不仅仅是UI层面的调整,更是涉及到系统行为、API兼容性等多个方面。屏幕适配:让你的应用在任何屏幕上都光彩照人。Android设备拥有极其多样的屏幕尺寸、分辨率和像素密度,因此屏幕适配至关重要。

2025-06-19 10:35:53 693

原创 callback的原理和机制

Callback(回调)就是把“我处理完再通知你”的机制。你把一个“接口对象”传给别人,别人处理完后“反过来调用你提供的方法”,这就叫回调。

2025-06-14 14:28:43 607

原创 AndroidMJ-mvp与mvvm

如果有缓存,调用 view.showData() 后就执行了 return, loadData 方法会立即终止,不会继续执行后面的联网逻辑。这是典型的“缓存优先”策略,避免不必要的网络请求。fetchData 回调里调用了view,是不是意味着 View 和 Model 没解耦?Model 本身完全不知道 View 的存在,它只是调用了。的存在,它只关心如何拿数据和把结果通过接口通知出去。同时持有两者的引用,作为中间人来协调工作。,解耦仍然存在,只是回调链路由。,在回调方法体中调用的。

2025-06-14 14:21:29 662

原创 AndroidMJ-基础-05

9:测试相关postmangenemotionespresso10:性能相关profiler。

2025-06-13 10:35:39 302

原创 工模、老化apk中Framewok定制开发的场景

场景:工厂模式APK或老化测试APK需要访问某些非公开或自定义硬件(如特殊的传感器、马达、电源控制模块等)。解决方案:通过添加自定义或扩展已有的服务(如PowerManager、SensorManager)来暴露接口给APK调用。场景:APK需要与底层服务(例如由 HAL 层提供的服务)进行跨进程通信。解决方案:通过Framework层暴露一个AIDL接口,APK通过AIDL进行调用,避免直接调用JNI或底层C/C++代码。场景类型示例说明硬件访问自定义SystemService、AIDL。

2025-06-10 21:35:16 711

原创 android debug包和release包的区别

在 Android 开发中,Debug 包和 Release 包是两种不同的构建类型,主要区别在于优化、调试信息和安全性等方面。

2025-06-06 11:25:39 1420

原创 Python中处理JSON文件

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。在Python中,处理JSON数据是一项常见且重要的任务,特别是在数据科学、网络编程和API交互等领域。本文将深入探讨Python中如何处理JSON文件,包括读取、解析、修改和写入JSON数据。JSON格式由键值对组成,其中键总是字符串类型,而值可以是字符串、数字、数组(列表)、布尔值或其他嵌套的JSON对象。

2025-03-11 17:58:00 974 1

原创 python读、写CSV文件

如果文件正在被记事本、excel等工具软件打开,此时想往文件里写数据,那么就会报权限错误必须先关掉打开的文件,再执行具体的write写操作。

2025-03-09 14:53:16 1146

原创 Python Script Programming

学习异常处理、装饰器、生成器,探索库如`NumPy`、`Pandas`。学习变量、数据类型、运算符、条件语句、循环等基础语法。学习模块导入与使用,如`math`、`random`。开发小型项目,如爬虫、自动化脚本、数据分析。理解类与对象,掌握封装、继承、多态。熟悉列表、字典、元组、集合的操作。练习数据处理,如排序、过滤、统计。掌握函数定义、参数传递、返回值。5. 面向对象编程(1~2周)1. 基础语法(1~2周)3. 数据结构(1~2周)6. 实战项目(2~3周)2. 函数与模块(1周)

2025-02-28 15:10:04 299

原创 运维基础知识(一)

总的来说,Telnet由于其明文传输的缺陷,安全性较低,而SSH通过加密传输提供了更高的安全性。)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。SSH:SSH是一种加密传输协议,通过公钥加密和密钥交换技术确保数据在传输过程中是加密的,从而保护用户的隐私和数据的安全性。Telnet:Telnet是一种明文传输协议,所有的数据(包括用户名和密码)都是以明文形式在网络上传输,容易被截获和篡改。

2025-02-27 13:09:59 1195

原创 手把手教你本地部署deepseek

点击 “DeepSeek-R1” 后,您将进入模型的详情页面,页面中会显示多个可选择的参数规模。这里的 “B” 代表 “Billion”,即“十亿”,因此:1.5B 表示该模型具有 15 亿个参数,适合轻量级任务或资源有限的设备使用。官网下载OLLAMA工具。选择不同的参数规模意味着你可以根据自己的硬件配置和应用需求,决定使用哪个版本的模型。基于ollama官网具体模型版本右侧的指令,比如1.5b对应的ollama run deepseek-r1:1.5b,在终端进行执行,按回车键即可开始下载模型。

2025-02-21 15:58:09 453

原创 计算机网络协议(二)

如果你需要使用的协议不在 HTTP 的范畴内,像某些专有协议,或者需要实现低层次的协议(如自定义的 TCP/UDP 协议),就需要手动使用。高层次的库提供了 HTTP 请求的封装,处理了连接管理、请求/响应处理、错误处理等复杂细节,开发者无需关心底层的连接和数据传输。当有了高层次的网络库之后,就可以直接通过http进行网络操作了,而不再基于socket进行基本的(TCP/UDP)接口编程。:如果你需要对网络通信有精细的控制,比如实现自定义的协议或直接操作 TCP/UDP 的细节,

2025-02-17 14:57:09 285

原创 计算机网络协议(一)

TCP/IP的体系结构比较简单,只有四层层次名称单 位功 能协 议网络接口帧负责实际数据的传输,对应OSI参考模型的下两层HDLC(高级链路控制协议)PPP(点对点协议) SLIP(串行线路接口协议)网络层数据报负责网络间的寻址数据传输,对应OSI参考模型的第三层IP(网际协议) ICMP(网际控制消息协议)ARP(地址解析协议) RARP(反向地址解析协议)传输层报文段负责提供可靠的传输服务,对应OSI参考模型的第四层TCP(控制传输协议) UDP(用户数据报协议)

2025-02-17 11:31:17 897

原创 1.5 python文件 demo

读写文件(read()、write()、readline()、readlines())异常链与上下文管理(raise from、__context__)打开与关闭文件(open()、close())try-except-finally结构。文件模式(r、w、a、b、+)上下文管理器(with语句)内置异常类型与捕获多异常。

2025-02-12 15:59:41 326

原创 1.2 python数据结构 demo

栈 (Stack):后进先出(LIFO)数据结构,常用于递归和回溯问题。队列 (Queue):先进先出(FIFO)数据结构,适合排队管理。字符串方法(split(), join(), replace())OrderedDict:需要保持插入顺序的字典,如历史记录、缓存等。deque:适合双端队列操作,如任务调度、缓存等。1.2.7 集合模块(collections)常用操作(切片、格式化、拼接)集合运算(并集、交集、差集)1.2.4 集合(Set)常用操作(增删改查)常用操作(增删改查)

2025-02-12 11:18:48 497

C++基础编程 学习笔记

C++基础编程,适合小白和跨专业的同学学习,涉及 C++介绍(注释,变量,关键字,标识符命名规则)、 数据类型(整型,sizeof关键字,实型(浮点型),字符型,布尔型,数据的输入)、 运算符(算数运算符,赋值运算符,比较运算符,逻辑运算符)、 程序流程结构(选择结构,循环结构,跳转结构)、 数组(一维数组,二维数组)、 函数(函数定义,函数调用,值传递,函数的常见样式,函数的声明,函数的分文件编写) 指针(指针变量定义使用,指针的内存空间,空指针与野指针,const修饰指针,指针和数组,指针和函数,指针,数组,函数)、 结构体(结构体定义和使用,结构体数组,结构体指针,结构体嵌套结构体,结构体做函数参数,结构体中const使用场景)

2024-05-13

C++提高编程 学习笔记

C++提高编程 学习笔记

2024-05-11

C++ 核心编程 学习笔记

内存分区模型: 程序运行前,程序运行后,new操作符 引用: 引用的基本使用,引用注意事项,引用做函数参数,引用做函数返回值,引用的本质,常量引用 函数提高: 函数默认参数,函数占位参数,函数重载 类和对象: 封装,对象的初始化和清理,C++对象模型和this指针,友元,运算符重载,继承,多态 文件操作: 文本文件,二进制文件

2024-05-11

移动开发+android+listView+EditText+实现搜索ListView功能

基于gradle7.0.0,java移动开发+android+listView+EditText+实现搜索ListView功能,基于TextWatcher的onTextChanged,beforeTextChanged,afterTextChanged进行搜索功能的函数filterData的执行,并在合适的位置如:onCreate中为编辑控件EditText添加监听addTextChangedListener

2024-04-25

基于AndroidStudio的天气app(适合初学者)

结合《第一行代码》这本书,效果很好!! 原生Android开发的初学者值得一看!!

2018-11-04

apache7压缩包

apache下载解压后,立刻可以使用,win64的操作系统适合使用,当然你也可以访问Apache官网。

2016-02-29

空空如也

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

TA关注的人

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