- 博客(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
原创 新版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
原创 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
原创 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
原创 C codes运行(一)
将 C:\mingw64\bin 添加到系统环境变量 PATH。打开终端,输入 gcc --version,看到版本信息即成功。创建工作目录,如下图的c_demo,exe文件是后生成的。在VS code中安装相应的插件。红色框中的支持win10,11。(Windows)或。
2025-07-04 14:36:20
407
原创 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
原创 memory leak 和 OOM (内存泄露和内存溢出)
即指 程序在申请内存后,当该内存不需再使用但却无法被释放& 归还给 程序的现象下面,我将用一张图总结Android中内存泄露的原因 & 解决方案。
2025-06-19 16:55:18
953
原创 Android 性能优化
内存泄露和 OOM(内存溢出)是应用稳定性的致命伤,必须优先解决。ANR(主线程阻塞)与 UI 卡顿(Jank)严重影响用户体验,两者紧密相关。优化主线程耗时操作、提高渲染效率是预防关键。
2025-06-19 15:40:01
506
原创 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
原创 工模、老化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++基础编程 学习笔记
2024-05-13
C++ 核心编程 学习笔记
2024-05-11
移动开发+android+listView+EditText+实现搜索ListView功能
2024-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅