- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 一文让你快速领悟Java线程池的原理
书接上文,一文加深你对Java线程池的了解与使用—筑基篇,本文将从线程池内部的最最核心类 ThreadPoolExecutor 源码中的重要方法入手,也是本文分析的对象,从状态/任务/线程这三个模块剖析线程池的机制,掌握背后的核心设计。一、线程池如何管理自身的状态/生命周期在ThreadPoolExecutor 类中,有以下的定义://Integer的范围为[-2^31,2^31 -1], Integer.SIZE-3 =32-3= 29,用来辅助左移位运算private static final
2020-11-12 00:04:57
280
原创 一文让你快速理解Java的线程池
前言Java中的线程池是一个很重要的概念,它的应用场景十分广泛,可以被广泛的用于高并发的处理场景。J.U.C提供的线程池:ThreadPoolExecutor类,可以帮助我们管理线程并方便地并行执行任务。因此了解并合理使用线程池非常重要。本文对线程池采用 3W 的策略结合源码进行思考逐层分析,即是什么为什么怎么做。什么是线程池线程池的本质是对任务和线程的管理,做到了将任务和线程两者解耦。线程池对任务的管理可看作生产者消费者的关系,通过阻塞队列的存与取。阻塞队列缓存待执行的任务,工作线程从阻塞队列中获
2020-11-12 00:02:10
173
原创 看完这篇,再也不怕被问到AsyncTask的原理
本文很多资料基于Google Developer官方对AsyncTask的最新介绍。AsyncTask 是什么AsyncTask is designed to be a helper class around Thread and Handler and does not constitute a generic threading framework. AsyncTasks should ideally be used for short operations (a few seconds at
2020-07-27 14:10:41
345
原创 10s解决AndroidStudio 无法使用Tab键缩进的问题
不知道从什么时候开始,我无法在我的Android Studio上的XML文件里通过键盘上的Tab快捷键对代码进行缩进。令我疑惑的是,我的Tab键没坏,在写Java代码、Gradle代码的时候,Tab键都能正常工作,为什么XML文件就不行呢?探索解决方案的过程:升级Android Studio版本(Failed,可能是因为保留了上一版本的设置)Setting —> KeyMap —> Reset(Failed)修改缩进的原快捷键Tab为其他键(Failed)无意中想到原因可能是:设置
2020-07-26 22:04:51
631
原创 Android RecyclerView滚动类控件修改、去掉滑动边界的阴影效果
RecyclerView 修改、去掉滑动边界的阴影效果RecyclerView 滚动列表,谷歌爸爸在设计这个控件时候,在滑动到边界时,默认给我们加上了阴影,谷歌设计的本意呢应该是给提示用户列表滑动已经到边缘了,如图:修改阴影效果的颜色阴影效果的颜色,其实是由你的项目中styles.xml中的AppTheme的theme定义的colorPrimary这个id的颜色控制的,当我们不指定阴影效果...
2020-04-25 20:31:11
2101
原创 Android自定义View—小巧清爽的多节点进度条
前言最近项目有一个节点进度条的小需求,完成后,想分享出来希望可以帮到有需要的同学。真机效果图自定义View完整代码开箱即用~,注释已经炒鸡详细了/** * @description: 节点进度条 * @author: DMingO * @date: 2020/4/15 */public class PointProcessBar extends View { /*...
2020-04-25 10:49:22
675
6
原创 Android Excel 解析 xls 和 xlsx,方法也可以很简单
Excel 解析,一般来说是在服务端进行的,但是如果移动端要实现解析Excel的功能,那也是有实现的方法的。不过由于Android 原生用Java/Kotlin实现,所以也可以参考服务端解析Excel的方法。首先说,jxl,过去比较流行的解析office文档的框架,但目前官方的版本,在移动端上是不能解析xlsx。然后是POI,是如今比较主流的处理office文档的框架,可以导入也可以生成,缺...
2020-04-24 22:20:03
2897
2
原创 Android 10 获取已连接的蓝牙设备的当前电量
项目中有获取连接蓝牙设备电量的小需求,查找了一些资料,发现谷歌在Android8.0推出了一个getBatteryLevel的api,用来获取蓝牙设备电量百分比的方法。但在我的项目中android10生产环境,这个方法在Bluetoothdevice类的源码内,已经被标识为废弃不可直接调用的方法。如下图所示但是研究一番发现可以通过反射,继续调用这个方法。我将过程写入了一个类内,没有进一步简...
2020-04-24 21:01:21
5825
1
原创 Android原生多语言切换方案,兼容Android10
前言一个应用若需要国际化,至少需要支持中文和英语这两种语言,而同时随着谷歌的系统的更新,安卓系统可以设置当前语言的首选语言。因此,本文立足于此,多语言的切换方案为:App固定的文字内容,跟随系统,中文,英文,三种切换,选择后重启应用生效;本文代码参考链接,感觉原作者~不过直接使用链接文章中的工具类可能会在系统兼容上会有一点点问题,我在项目实践过程改进了,分享出来特别说明:工具类由Java编写...
2020-04-24 20:40:57
3564
1
原创 Android Library 发布开源库 JCenter & JitPack 攻略
Android 发布开源库攻略对于Android 的开源库,一般通过 JCenter 或者 JitPack 发布开源。两种方式均可~文章目录Android 发布开源库攻略一、 上传开源库到 JCenter1、准备工作步骤1:注册Bintray账号步骤2:在Bintray上建立仓库步骤3:在代码项目中创建`Module`文件夹步骤4:将需要上传的代码存放到Module文件中步骤5:将整个项目...
2020-02-05 22:09:22
247
1
原创 Android APK 重签名
对APK 进行在线 加固后,Apk体积一般会变大,而且Apk会无法直接安装,因为缺少了你的签名。是的,你需要对这个Apk进行重签名。如何重签名重签名的方法,一般来说,有两种,第一种是用JDK自带的 jarsigner 工具,用命令行来给指定Apk文件用指定的keystore文件对它进行重签名。第二种就是用可视化的签名工具使用 jarsigner 工具首先最好把 待签名的Apk文件和 用来...
2020-01-18 11:19:28
2095
原创 写给Android 混淆小白的快速混淆方法
写给Android 混淆小白的快速混淆方法为啥子要混淆开始混淆第一步先特别介绍的是与保持相关元素不参与混淆的规则相关的几种命令:快速混淆?如果依赖的非主流的开源库作者没提及有关混淆的东西,demo里也没找到,怎么办?如果导入了SDK,官网没有提及有关混淆的事项,demo里也没找到,怎么办?模板时间为啥子要混淆简单来说,Android 进行ProGuard,可以起到压缩,混淆,预检,优化的功能,...
2020-01-18 10:35:31
1082
原创 Android 讯飞语音听写SDK快速接入(附空指针解决和修改对话框文字方法)
1、账号准备工作首先要有一个讯飞的账号啦,为后面申请APPID、APPKey等东西做准备。顺带一提:讯飞对不同认证类型用户开放的SDK的使用次数是有不同的,详情如下图。账号申请完成后,需要去你自己的控制台注册你的应用,同时也可以看到你的应用对应的 APPID 等属性,开通的功能,调用量剩余次数等信息。本文介绍的是Android SDK的接入,这是Android SDK的下载地址,可以...
2019-10-16 09:03:03
1933
1
原创 Android JetPack组件-CameraX初探
CameraX 又是一个 Google 推出的 JetPack 组件 ,是一个新鲜玩意儿,故给大家分享下我在项目中的使用过程心得。。CameraX 是什么?Google 开发者文档 对 CameraX 的评价如下:CameraX是一个Jetpack支持库,旨在帮助您简化相机应用程序的开发工作。它提供一致且易于使用的API接口,适用于大多数Android设备,可以向后兼容至Android 5....
2019-10-05 11:19:45
4258
原创 Android EventBus踩坑,Activity接收不了粘性事件。
注解问题EventBus 的 粘性事件,可以让 成功注册后的 Activity、Fragment 后再接收处理 这一事件。但是今晚写代码时,突然发现粘性事件,发送不成功了。???具体情况是:我在Activity1 向 Activity 2 发送了 粘性事件 ,但是 Activity2 却接收不了这个粘性事件了。这究竟是咋回事,首先从Activity的注册事件到发送EventBus粘性事件的...
2019-08-12 22:07:28
2442
1
原创 Flutter 打包Android APK 笔记与事项
Flutter 打包Android APK 笔记1. 获取一个KEY首先要获取 你的 打包应用的一个 key ,这一步其实和 在AndroidStudio 上打包 APK 一样,都是要注册一个本地的 key,key 其实也就是 jks文件啦。如果已经本机已经有了 KEY,可以直接走第二步咯。在AndroidStudio里面注册一个 jks文件,很轻松,只要去工具栏的build->Ge...
2019-08-07 19:57:10
796
windows签名工具 360.rar
2020-01-18
广义表数据结构ADT实现代码
2019-12-02
哈希表数据结构ADT实现代码
2019-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人