自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java利器Jakarta Commons

Commons Lang这一组API主要是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。

2024-03-05 18:35:51 256

原创 Android 操作剪切板

【代码】Android 操作剪切板。

2024-02-26 11:11:44 121

原创 Android新特性

5、App在后台运行时,如果需要获取心率、体温、血氧饱和度等传感器信息,将不仅需要向用户申请现有的BODY_SENSORS权限,还必须声明新的BODY_SENSORS_BACKGROUND权限。4、闹钟权限增加USE_EXACT_ALARM权限,一旦申请之后不可撤销,避免频繁打扰用户,能够更高效地为用户提供闹钟、日程提醒等服务。3、读取视频或图片增加了一个只允许访问部分图片或视频的权限(非强制),申请读取权限之后自动获取写入权限。5、动态加载的文件(Jar、Dex、Apk 格式)需要设置成只读的。

2024-02-20 08:49:45 315

原创 Android切换语言

【代码】Android切换语言。

2024-01-11 13:57:25 52

原创 WeakReference在Handler中的应用

这种情况就是由于android的特殊机制造成的:当一个android主线程被创建的时候,同时会有一个Looper对象被创建,而这个Looper对象会实现一个MessageQueue(消息队列),当我们创建一个handler对象时,而handler的作用就是放入和取出消息从这个消息队列中,每当我们通过handler将一个msg放入消息队列时,这个msg就会持有一个handler对象的引用。有一个Activity的弱引用,而弱引用会很容易被gc回收,这样就能解决Activity结束后,gc却无法回收的情况。

2023-12-05 22:22:50 105

原创 dialog,window窗口类型,api文档

WindowManager.LayoutParams - Android中文版 - API参考文档

2023-11-17 13:21:34 80

原创 安卓离线点击第一条通知跳转正常,第二条失败或者通过URL Scheme唤起App指定页面第一次成功,第二次失败

2、尝试更改intent中设定的activity的启动模式为singleTask。1、服务端intent参数中设置为launchFlags=0x04000000。

2023-10-24 17:37:04 277

原创 Android 适配折叠屏

【代码】Android 适配折叠屏。

2023-10-08 11:08:40 219

原创 Android Studio 将第三方依赖生成jar包

项目中使用了许多第三方的依赖,比如Gson,glide,retrofit等。这些依赖在本地磁盘的位置如图,这里边可以导出来jar包。

2023-08-08 14:12:29 9

原创 Activity跳转生命周期

2023-07-23 16:03:41 12

原创 RecyclerView缓存机制

给用户的自定义扩展缓存,需要用户自己管理 View 的创建和缓存,可通过Recyclerview.setViewCacheExtension()设置。通过了解RecyclerView的四级缓存,我们可以知道,RecyclerView最多可以缓存 N(屏幕最多可显示的item数) + 2 (屏幕外的缓存) + 5*M (M代表M个ViewType,缓存池的缓存),只有RecycledViewPool找到时才会重新调用 onBindViewHolder。

2023-07-22 15:28:09 12

原创 Android线程池的分类

3.线程数量不固定的线程池,核心线程数量固定,非核心线程数量不固定,非核心线程有超时机制,用于执行定时任务和固定周期任务。2.线程数量不固定的线程池,只有非核心线程,有超时机制60秒,任务队列是空集合,适合执行大量的耗时少的任务。1.线程数量固定的线程池,只有核心线程,没有超时机制,任务队列没有大小限制。4.只有一个核心线程,适用于不需要处理线程同步问题的情况。

2023-06-28 22:29:04 100

原创 Android studio 多渠道版本打包和flavors

2.资源文件:自定义flavor和main中可以有相同的资源文件,指定哪个flavor优先使用哪个flavor的资源文件,如果没有才使用main中的资源文件。3.清单文件:自定义flavor和main中可以有相同的清单文件,相同的清单文件会被合并。1.java文件:自定义flavor和main中不可以有相同的java文件。

2023-03-24 16:31:39 91

原创 Android屏幕适配(命名不同资源文件夹w<n>dp)

这个后缀的使用方式和wdp一样,随着屏幕横纵向的变化,屏幕高度也会变化,根据变化后的高度值来判断是否使用hdp ,但这种方式很少使用,因为屏幕在纵向上通常能够滚动导致长度变化,不像宽度那样基本固定,因为这个方法灵活性不是很好,google官方文档建议尽量少使用这种方式。带这样后缀的资源文件的资源文件制定了屏幕宽度的大于Ndp的情况下使用该资源文件,但它和swdp不同的是,当屏幕横向纵向切换时,屏幕的宽度是变化的,以变化后的宽度来与N相比,看是否使用此资源文件下的资源。

2023-03-10 13:39:05 33

原创 Android操作assets中的资源

【代码】Android操作assets中的资源。

2023-03-06 18:03:02 348

原创 git忽略某个文件(.gitignore 和.git/info/exclude 的区别)

能够在团队成员中共享,因此当某个文件被公认为“无需版本控制”,那么最好就把它放在。文件则是供个人专用的,仅当自己觉得这个文件不用版本控制时,才把它放在。都能实现相同的功能,能够让Git忽略它们标记的文件。

2023-03-03 09:17:10 62

原创 ANR问题

data/system/dropbox:会保留历史上发生的所有ANR时的信息,保存时长3天。

2022-12-14 16:38:54 13

原创 js运算符 ??、 ||、?.

除了false、0、""、null、undefined 和 NaN 以外皆为真值。

2022-11-02 14:59:07 111

原创 查看真机下的报错信息,日志

仅仅查看log的信息还不足以帮我们定位到ANR的原因,所以需要去看data/anr/trace文件或者data/system/dropbox/下的log日志。

2022-10-13 13:58:31 122

原创 es6运算符

创建字符串模板,可以直接写回车空格编写html或文本,在 ` ` 中可以使用 ${ }直接把变量与字符串拼接起来。

2022-08-22 16:51:06 95

原创 Android混淆笔记

不混淆某个类 -keep public class name.huihui.example.Test { *; }不混淆某个包所有的类 -keep class name.huihui.test.** { *; }不混淆某个类的子类 -keep public class * extends name.huihui.example.Test { *; }不混淆所有类名中包含了“model”的类及其成员 -keep public class .model. {*;}不混淆某个接口的实现 -keep class *

2022-06-28 10:44:13 569

原创 Lifecycle,LiveData,ViewModel区别

Lifecycle ,LiveData,ViewModel

2022-06-21 17:00:59 190

原创 git命令

git fetch : 从远程获取最新版本到本地,不会git mergegit pull : git fetch+git mergeupdate project : git fetch +git merge或者git rebase(android studio 界面自己选择)

2022-05-20 15:46:04 83

原创 配置Android开发环境——sdk

(1)新建系统变量->变量名"ANDROID_SDK_HOME",变量值"D:\adt-bundle-windows-x86\sdk"(即SDK的安装路径)(2)编辑系统变量->变量名"Path",在原变量值的最后面加上“;%ANDROID_SDK_HOME%\tools;%ANDROID_SDK_HOME%\platform-tools”......

2022-05-10 16:14:36 523

原创 配置Java开发环境——JDK

(1)新建系统变量->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)(2)编辑系统变量->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”(3)新建系统变量->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”.........

2022-05-10 16:11:07 514

原创 不用第三方工具给apk签名

1.给apk签名:java -jar apksigner.jar sign --ks 签名文件 --ks-key-alias 签名文件的alias --ks-pass pass:密码 --key-pass pass:密码 --out 签名后的APK 签名前的APK"例如:D:\sdk\build-tools\28.0.3\lib>java -jar apksigner.jar sign --ks D:/qdkey.jks --ks-key-alias qdkey --ks-pass pass

2022-05-08 16:46:03 1056

原创 Android危险权限

android.permission.READ_CALENDAR允许程序读取用户日历数据android.permission.WRITE_CALENDAR允许一个程序写入但不读取用户日历数据android.permission.CAMERA,允许访问摄像头进行拍照android.permission.READ_CONTACTS允许程序读取用户联系人数据android.permission.WRITE_CONTACTS允许程序写入但不读取用户联系人数据android.permission.

2022-02-11 09:54:56 2231

原创 ADB常用命令,Android无线调试

连接手机: adb tcpip 5555 切换到WIFI无线调试(adb tcpip和adb connect的端口号5555可以随意指定,但要保持一致) adb connect 172.31.2.25:5555 连接手机(adb tcpip和adb connect的端口号5555可以随意指定,但要保持一致)ADB命令: adb install -r E:\SDR.apk 安装apk adb shell rm /sdcard/Android/data...............

2022-02-11 09:44:50 1298

原创 Activity启动流程步骤

1.Launcher进程通过IPC向AMS发送startActivity请求,在execStartActivity方法中通过获取AMS的代理,调用代理的startActivity方法2.AMS调用startProcessLocked方法向Zygote进程发送创建应用进程请求3.Zygote进程创建应用进程4.应用进程启动ActivityThread...

2022-01-20 10:08:29 413

原创 Handler

Handler消息机制原理:在主线程创建handler,在构造方法中传入当前线程的looper并重写handleMessage方法。子线程通过handler的sendMessageAtTime发送消息,在sendMessageAtTime方法中获取主线程的消息队列,并将当前handler赋值给message中的target属性并通过消息队列的enqueueMessage方法将message插入到消息队列中。looper通过for死循环不断的访问消息队列中的next方法获取message,如果messag

2021-11-09 14:54:49 568

原创 外部类,静态内部类详解

外部类 普通方法 外部类的普通属性+静态属性; 静态内部类的静态属性外部类 静态方法 外部类的静态属性 静态内部类的静态属性静态内部类 普通方法 静态内部类的普通属性+静态属性 外部类的静态属性静态内部类 静态方法 静态内部类的静态属性...

2021-10-28 10:34:01 240

原创 catagory,action,data隐式启动匹配规则

如下这种写法可以匹配成功 Intent intent = new Intent();// intent.setAction("com.action.123"); intent.setAction("com.action.456"); intent.addCategory("android.intent.category.DEFAULT");//即使代码里不写系统也会默认添加,所以必须在清单文件中配置这个cat

2021-10-21 13:16:14 1360

原创 创建Vue3.0工程

1、配置 npm 淘宝镜像(防止出现下载缓慢现象):npm config set registry https://registry.npm.taobao.org2、全局安装@vue/cli(仅第一次执行):npm install -g @vue/cli3、切换到你要创建项目的目录,然后使用命令创建项目4、启动项目:npm run serve5、(以上所有命令都在管理员权限下的cmd窗口使用的)...

2021-08-19 15:43:03 85

转载 Android获取文件夹,文件大小

public class FileSizeUtil { private static final String TAG=FileSizeUtil.class.getSimpleName(); public static final int SIZETYPE_B = 1;//获取文件大小单位为B的double值 public static final int SIZETYPE_KB = 2;//获取文件大小单位为KB的double值 public static final .

2021-04-30 13:20:00 1786

原创 ExpandableListView的item点击监听事件

android:descendantFocusability属性如下:beforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点...

2021-04-30 13:16:30 324

原创 Android使用RSA分段加解密

RSA为非对称加密,加解密用一对秘钥(公钥,私钥)公钥和私钥成对出现,是相对的,没有规定哪个必须是公钥哪个必须是私钥 用公钥加密的数据只有对应的私钥可以解密 用私钥加密的数据只有对应的公钥可以解密 如果可以用公钥解密,则必然是对应的私钥加的密 如果可以用私钥解密,则必然是对应的公钥加的密1、RSA工具类/** * RSA 非对称加密算法,加解密工具类, * 加密长度 不能超过 128 个字节。 */@RequiresApi(api = Build.VERSION_CODES.KI

2021-04-23 09:04:48 585

原创 Android使用AES加解密

AES为对称加密,加解密用一套秘钥,秘钥自己随便定义(长度必须为16 或 32 个字符)1.AES工具类/** * AES 对称加密算法,加解密工具类 */@RequiresApi(api = Build.VERSION_CODES.KITKAT)public class AES { private static final String TAG = AES.class.getSimpleName() + " --> "; /** * 加密算法

2021-04-23 08:48:00 4015

原创 Android Studio常用插件

GsonFormat:json数据序列化成对象Butterknife:注解 ScreenMatch:多尺寸适配 JsonOnlineViewer:模拟get post请求

2019-04-16 09:29:33 309

原创 Android6.0——9.0常用适配注意事项

Android6.0:权限动态申请Android7.0:FileProviderAndroid8.0:<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>允许安装未知来源应用的权限https://blog.csdn.net/feibendexiaoma/ar...

2019-03-11 11:29:22 595

原创 CardView

CardView要作为跟布局使用,否则阴影效果会闪烁<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schema...

2018-10-12 08:46:22 357

typora历史版本(不收费版,1.0之前的版本)

typora历史版本(不收费版,1.0之前的版本)

2022-05-10

空空如也

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

TA关注的人

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