自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 Android内存泄露

内存泄漏学习笔记

2023-08-20 16:05:15 152

原创 C++学习笔记4

指针

2023-08-18 06:29:36 1035 1

原创 C++学习笔记3

C++

2023-07-19 08:46:42 255

原创 C++学习笔记2

C++学习笔记

2023-07-19 08:04:33 120

原创 C++学习笔记1

C++ 学习笔记

2023-07-18 09:04:33 314

原创 C++(3)

可以将RAM当做宿舍里成排 存物柜,每个存物柜都有编号,即地址,要访问特定的内存单元,如内存单元578,需要使用指令要求处理器从这里获取值或将值写入到这里。注意:需要时再声明变量通常是更好的选择,因为这让代码更容易理解,存储在变量中的饿数据被存储在内存中,应用程序终止时,这样的数据将丢失。变量类型向编译器指出了变量可存储的数据的性质,编译器将为变量预留必要的空间,变量名由程序员选择,它替代了变量值在内存中的存储地址。访问数组时,如果超越其边界,结果将是无法预料的,在很多情况下,这将导致程序崩溃。

2023-06-12 19:39:51 990

原创 工厂模式学习笔记

工厂模式

2023-02-25 06:27:01 56 1

原创 android监听蓝牙连接状态

android 监听蓝牙连接状态

2023-01-28 12:46:00 1675

原创 RandomAccessFile类的简单使用

RandomAccessFile的简单使用

2022-11-29 13:14:29 492

原创 android音频学习笔记之写入音频文件

将音频原始数据写入数据

2022-11-29 13:05:13 787

原创 git命令总结

git 命令总结

2022-11-28 19:10:47 444

原创 java获取文件MD5值

获取文件md5值

2022-11-28 18:57:31 1340

原创 Android监听数据库中某个变化

监听数据库中的变化

2022-11-28 18:54:07 720

原创 android音频学习笔记之wav头文件

存储和解析wav文件

2022-11-04 20:43:52 2313

原创 音频学习笔记之音频播放

音频学习笔记之播放音频

2022-11-03 20:00:10 820

原创 音频学习笔记之音频采集

android 音频学习之音频采集

2022-11-03 19:41:19 1732

原创 android源码设计模式学习之单列模式

单列模式

2022-08-09 21:49:59 602

原创 android源码设计模式学习笔记(一)

设计模式的学习

2022-08-09 21:30:08 2171

原创 自定义注解(一)

自定义注解

2022-07-25 21:43:14 354

原创 LiveDatade的基本使用

LiveData的使用

2022-07-25 21:29:11 352

原创 系统源码学习之Binder

Binder类作为Bn端(native) ,BinderProxy 作为客户端的Bp的代表

2022-07-07 22:18:28 602

原创 自定义view学习笔记(三)

view的工作流程:measure ,layout,draw

2022-07-07 21:53:57 132

原创 自定义View学习笔记(二)

Android 事件分发机制事件分发的顺序:Activitity -> GroupView ->View

2022-07-07 21:34:09 517

原创 自定义View学习笔记(一)

View 是Android 所有控件的基类,textview等都继承view,而LinearLayout,它继承ViewGroup

2022-07-05 21:54:04 369

原创 学习MVVM笔记(一)

model :数据层,包含数据实体和对数据实体的操作View :界面层,对应Activity XML view 负责数据显示以及用户交互ViewModel :关联层 将model 和view 进行绑定,model或者View 更改时,实时刷新对方注意:1.View只做和UI相关的工作,不涉及任何业务逻辑,不涉及操作数据,不处理数据。UI和数据严格的分开2.ViewModel只做和业务逻辑相关的工作,不涉及任何和UI相关的操作,不持有控件引用,不更新UI。DataBinding 是谷歌官方推荐的一个库

2022-06-30 22:00:13 337

原创 Android获取应用APP

获取android 安装的应用

2022-06-30 21:40:56 1279

原创 Json的基本使用

Json是什么?是一种轻量级的数据交换格式,与XML一样,被采用的客户端和服务端交互的解决方案,具有良好的可读和便于快速编写的特性。Json的格式规范:就像协议一样,json肯定也会有一套规范的规则。数据在名称/值对中,数据由逗号分隔开,花括号保存对象,方括号保存数组。比如:[{ “id”:“1”,“name”:“基神”,“age”:“18” },{ “id”:“2”,“name”:“B神”,“age”:“18” },{ “id”:“3”,“name”:“曹神”,“age”:“18” }

2022-05-12 23:15:27 544

原创 OTA调试

a、如何确认AB升级当前分区通过查看 ro.boot.slot_suffix 属性值的方式,这个属性值显示当前使用分区名b、如何手动切换分区通过进入bootloader 模式,指定启动槽值来选择下次启动的分区,按照如下指令即可adb reboot bootloaderfastboot --set-active=afastboot rebootc、如何判断失败原因升级结束时,可以看到有个错误码,常见错误码如下,按照错误码去查找可能原因ErrorCode::kSuccess (0) 升级成功

2022-03-22 19:49:26 1957

原创 网络监听工具类

public class NetUtils { private static Context mContext; /** * getActiveNetworkInfo() 返回NetworkInfo,当前网络连接的信息 * * getNetworkInfo(int networkType) 返回一个指定网络的连接信息 * * getNetworkPreference() 返回首选网络连接的网络类型 * * setNet

2022-03-18 09:19:21 832

原创 c++(2)

任何一个对象都包括(属性,行为)类是抽象的,不占用内存,而对象是具体的,占用内存

2022-03-09 22:45:28 900

原创 C++(1)

#include<iostream>using namespace std;int main(){ cout << "hello world"; return 0;} 上面是C++的第一个程序分析:#include<iostream>(1)为预处理命令,其中 <> 中的为头文件(提供输入/输出的所需要的一些信息)//为命名空间using namespace std;//可以通过#include"std",表示要用到命名空间std中内

2022-03-08 23:46:00 809

原创 android 中的多线程实现方式

AsyncTask:实现多线程,在工作线程中执行任务,如耗时任务它属于抽象类public abstract class AsyncTask<Params, Progress, Result> {…}// 类中参数为3种泛型类型// 整体作用:控制AsyncTask子类执行线程任务时各个阶段的返回类型// 具体说明:// a. Params:开始异步任务执行时传入的参数类型,对应excute()中传递的参数// b. Progress:异步任务执行过程中,返回下载进度值的类型

2022-03-08 19:57:21 3141

原创 Socket通信

首先先了解一些基础知识点网络协议有几层?七层物理层,数据链路层,网路层(路由:数据包),传输层(TCP传输协议与UDP用户数据报协议),会话层,表示层,应用层IP地址:唯一的标识(为了实现网络中不同终端之间的通信,每个终端都必须有一个唯一的标识)端口:(1)用来区分不同的应用程序(2)端口号的范围065535,其中01023为系统的保留端口,我们的程序尽量不使用这些端口(3)IP地址和端口号组成了我们的SocketTCP协议 和 UDP 协议的比较TCP:传输控制协议三次握手 :建立一

2022-02-27 21:56:17 2072

原创 java使用 AES-128-cbc 加解密

首先介绍相关的几个重要的类:(一)KeyGeneratorJava提供了一个名称为KeyGenerator的类,该类用于生成密钥,此类的对象是可重用的。要使用KeyGenerator类生成密钥,请按照以下步骤操作第1步:创建KeyGenerator对象KeyGenerator类提供getInstance()方法,该方法接受表示所需密钥生成算法的String变量,并返回生成密钥的KeyGenerator对象。第2步:创建SecureRandom对象java.Security包的SecureRand

2022-02-27 00:52:02 4835 1

原创 android File操作

Context 提供两个方法来打开应用程序的数据文件夹里的文件IO流体系。FileInputStream openFileInput(String name):打开应用程序的数据文件夹下的name文件对应的输入流FileOutputStream openFileOutput(String name,int mode):打开应用程序的数据文件夹下的name文件对应的输出流其中:mode 有如下几个值:(1)MODE_PRIVATE :该文件只能被当前程序所读写(2)MODE_APPEND :以追

2021-12-14 22:01:16 2579

原创 修改EditText下划线

<TimePicker android:id="@+id/lala" android:timePickerMode="spinner" android:theme="@style/MyTime" android:layout_width="wrap_content" android:layout_height="wrap_content"></TimePicker> style属性:

2021-11-22 22:14:12 1522

原创 Android studio 控制台输出中文乱码

解决办法,在java工程目录下的build.gradle添加如下代码,然后重新运行一遍。tasks.withType(JavaCompile) {options.encoding = “UTF-8”}

2021-11-21 11:10:20 1793

原创 通过反射修改TimePicker

private void getTime(){ Resources resources = Resources.getSystem(); int hour = resources.getIdentifier("hour", "id", "android"); int min = resources.getIdentifier("minute", "id", "android"); NumberPicker mHourNumberPicker =

2021-11-21 08:31:16 1368

原创 自定义progressBar(实现在进度条中显示文字显示进度)

public class MyProgressBar extends ProgressBar { private String mText; private Paint mPaint; private int remain; public MyProgressBar(Context context) { super(context); initText(); } public MyProgressBar(Context co

2021-11-10 20:03:57 1626

原创 android xml知识

android中layer-list的使用:layer-list中的item是按照顺序从下往上叠加的(先定义的item在下面,后面的在上面)<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" android:drawable="@drawable/shape_progre

2021-11-10 19:49:37 2115

空空如也

空空如也

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

TA关注的人

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