- 博客(497)
- 资源 (22)
- 收藏
- 关注
原创 【图像处理 】001 Android 中 Bitmap 压缩的几种方法浅析
简略介绍了 Android 中常见的几种 Bitmap 图片压缩算法,以及各自的使用场景。
2022-07-26 19:16:47
2066
原创 人老了是什么感觉?
一天,一个年轻人问我:人老了是什么样的感觉。我一下怔住了,因为我还从来没有想到过——我已经老了。或许在我的生命中,这是第一次,我感觉我活出了理想中的自我。很多时候,我也对自己的身体感觉到绝望:满脸的皱纹,松弛的眼袋,下垂的屁股。我也常常因为看到镜中老态龙钟的自己而感到震惊,但我不会为这些事情痛苦不堪。我永远也不会去用真挚的友谊、精彩的生活或温馨的亲情,去换取少一些白发和扁平的肚子。我老了,也就更懂得去善待自己,对自己少了些苛刻。我成了我自己的朋友。我不会因为自己多吃了一片甜饼,或没有整理床铺,或花钱买了
2021-12-17 11:09:26
411
原创 Android App 设置系统时间,语言和时区、系统重启
文章目录说明1. 修改系统时间1. 设置系统时间(仅设置xx:xx)2. 设置系统日期(仅设置到xxxx年xx月xx日)3.设置系统是否自动获取时间4.判断系统是否自动获取时间2. 修改系统时区1. 设置系统时区2. 设置系统是否自动获取时区3. 判断系统是否自动获取时区3. 修改系统语言4. 系统重启5. 源码6. 参考说明以下功能的实现是在有系统签名和设置了 android:sharedUserId=“android.uid.system” 的情况下实现的。如果你的应用没有系统签名,可能无法实现以下
2021-11-01 11:03:42
5455
2
原创 Android 使用 ActivityLifecycleCallbacks 管理 Activity 和区分 App 前后台
文章目录ActivityLifecycleCallbacks 接口概述ActivityLifecycleCallbacks 接口可以做什么ActivityLifecycleCallbacks 的应用使用 ActivityLifecycleCallbacks 判断 App 前后台状态ActivityLifecycleCallbacks 原理分析参考ActivityLifecycleCallbacks 接口概述在 Android API 14 之后的 Application 类中,为我们提供了一个应用生命周
2021-10-19 18:06:14
1435
原创 Android 之 android.intent.category.DEFAULT 的用途以及如何使用
文章目录前言先说用途隐式 Intent 和显式 Intent显式 Intent隐式 Intent如何通过 Intent 找到具体的 Activity总结category 其他用途参考前言做了多年 Android 开发的你,如果有人问你,android 之 android.intent.category.DEFAULT 的作用是什么,你会回答上来么。如果不会,就可以看看这一篇文章。先说用途如果你的 activity 支持接收 implicit intent(隐式 Intent)的话就一定要在 int
2021-10-13 20:46:11
2951
原创 Java 代理模式的实现和原理详细分析
代理模式代理模式是常用的 java 设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是,我们在访问实际对象时,是通过代理对象来访问的,代理模式就是在访问实际对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。在后面我会解释这种间接性带来的
2021-10-11 21:09:27
633
原创 CountDownLatch 的理解和使用场景分析
1.背景:countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。存在于java.util.cucurrent包下。2.概念countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的
2021-09-02 00:35:58
474
转载 Android LayoutInflater原理分析,带你一步步深入了解View(一)
有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是一定要兑现的,而且在View这个话题上我还准备多写几篇,尽量能将这个知识点讲得透彻一些。那么今天就从LayoutInflater开始讲起吧。相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接
2021-08-17 00:29:17
240
原创 AndroidStudio 中 AIDL 使用实战以及采坑总结
什么是 AIDLAIDL : Android Interface Definition Language,即 Android 接口定义语言。Android 系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序也可以访问本应用程序提供的服务,Android 系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样, Android 使用一种接口定义语言(Interface Definitio
2021-03-19 18:53:31
1573
1
原创 JNI 开发资料
JNI Types and Data StructuresAndroid Studio jni开发入门——看我就够了!JNI 与AIDL 简明概述Android JNI使用全面讲解JNI 常用函数大全
2021-03-18 16:37:10
194
原创 Java 反射小结
反射则是一开始并不知道我要初始化的类对象是什么,自然也无法使用 new 关键字来创建对象了。这时候,我们使用 JDK 提供的反射 API 进行反射调用。
2020-12-09 20:26:42
270
原创 Android 调试工具 stetho 的使用
概述关于stetho,最开始是同事推荐的,主要用来通过Chrome的inspect命令来查看数据库数据的。配置好stetho环境后,在浏览器中输入chrome://inspect,找到需要调试的对象,点击inspect即可调试参考发现这篇文章写得很详细,所以就引过来了,感谢原作者的分享。 https://segmentfault.com/a/1190000012075067...
2020-10-30 10:45:08
2663
1
原创 JavaWeb 项目出现红色感叹号解决方案
在某些情况下,我们的工程会出现红色感叹号,包括安卓工程和web工程,一般比较普遍的错误是引用的jar包错误,下面给出解决方案:错误现场:web项目android项目【问题原因】:工程中classpath中指向的包路径错误【解决办法】:右键项目名称 BuildPath ---> Configure Build Paht...中,然后上面有几个选项卡找到
2020-10-30 09:34:39
5232
原创 Android 性能优化总结
性能优化实践(一)-安装包瘦身性能优化实践(二)-布局优化性能优化实践(三)-卡顿优化思考性能优化实践(四)-内存优化思考性能优化工具(九)-LeakCanary
2020-07-28 16:48:14
182
转载 如何让scrollview 始终显示最后一行
ScrollView 有一个方法scollTo(int, int)用来指定滚动条的位置。如果你尝试过,你会发现它是无效的。因为scollTo()在Scrolliew内的内容加载完成后才能执行。所以我们这样设置滚动条的位置:ScrollView mScrollView =(ScrollView)findViewById(R.id.svid);mScrollView.post(new Runnable() { public void run() { mScrollView
2020-07-20 11:25:53
1263
原创 通用SQL基础
通用SQL基础DML数据操作语言:insert delete updateDDL数据定义语言:create alter drop truncateDCL数据控制语言:grant revoke --通常无需程序员 操作事物控制语句:commit rollback savepoint1. 五类完整性约束NOT NULL:非空约束,指定某列不能为空。UNIQUE:唯一约束,指定某列或者几列组合不能重复。PRIMARY KEY:主键约束,指定该列的值可以唯一标识该条记录。FOREIGN KEY:
2020-05-28 15:43:26
280
原创 Android 国际化之动态语言切换(兼容 Android 4.4 - Android 10)
背景由于项目原因,需要用到国际化这一部分的知识。并且在 App 中需要动态切换语言,所以花了点时间研究了下具体的实现。并在兼容问题上做了较多的思考,目前兼容了 Android 4.4 到 Android 10 平台。实现思路大致思路如下:我们通过页面上选择的国家语言标识(比如 zh 代表简体中文,en 代表英语),去拿到系统的 Locale 对象 locale;通过 context 拿到系统资源 Resources 对象 resources;通过 resources 拿到资源配置 Config
2020-05-22 15:11:43
3055
2
原创 第一行代码第 3 章编写界面的实践 Demo
本文初探 UI 设计,主要包含两个点。制作 Nine-Patch 图片制作精美的聊天界面效果制作 .9 图现在新版的 Android SDK 的 tools 下面已经去除了 draw9patch.bat ,转而在 AS 中集成了该功能。只需要选中图片,右键生成 .9 图,然后编辑即可。.9 图的各边规则:左号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域上号黑色条...
2020-05-07 14:41:02
316
原创 Android 在代码中设置 drawableLeft(Right/Top/Bottom)
在xml中设置android:drawableLeft="@drawable/xxxxx"java 代码中设置java api 为我们提供了一个 setCompoundDrawables(left,top,right,bottom); 方法,供开发人员设置相应的边界图片。操作方法十分简单,但是要注意版本兼容问题(Android 低版本 获取 Drawable 对象发的方式不同)看如下代码...
2020-04-03 11:23:20
803
原创 RxJava实现遍历List集合定时发射每条数据
RxJava实现遍历List集合定时发射每条数据参考自 https://www.jianshu.com/p/aa71c155e19a ,感谢原作者。
2020-04-03 11:06:32
1902
原创 颜色透明度 16 进制对照表
100% — FF99% — FC98% — FA97% — F796% — F595% — F294% — F093% — ED92% — EB91% — E890% — E689% — E388% — E087% — DE86% — DB85% — D984% — D683% — D482% — D181% — CF80% — CC79% — C97...
2020-04-03 10:35:37
562
原创 Android Bitmap&Drawable&动画的优化建议
加载大图片或者一次性加载多张图片,应该在异步线程中进行图片的加载,涉及到 IO 操作,以及 CPU 密集操作,很可能引起卡顿。在 ListView,ViewPager,RecyclerView,GirdView 等组件中使用图片时,应做好图片的缓存避免始终持有图片导致内存溢出,也避免重复创建图片,引起性能问题。使用Glide等图片库使用 webp 替换 png 格式,或者使用 Ti...
2020-03-18 16:07:53
343
原创 一步一步教你将开源项目上传到jcenter
注册与上传 JCcenter写得比较清楚的文章,我直接引用过来了,感谢开源,我就不重复造轮子了。直接贴链接,感谢原作者。一步一步教你将开源项目上传到jcenter(第一种方式)一步一步教你将开源项目上传到jcenter(第二种方式)特别说明,我使用的是第一种方式完成了注册和相关设置选项。根据文中的方式操作,一步一步来,问题不到。可能需要特别注意的是配置文件的编写。这里我贴一份配置文件 ...
2020-03-11 14:39:11
548
原创 Android 带你从 0 实现基本的 BLE 开发
纯手写实现极简方式 BLE 开发,并适度封装。实现扫描、连接、发送、接收等功能下面带大家从 0 实现基本的 BLE 开发。文末提供 git 完整源码。权限进行蓝牙相关操作,需要使用到蓝牙权限,在AndroidManifest.xml清单文件中添加相应权限<uses-feature android:name="android.hardware.bluetooth_le" ...
2020-01-10 15:23:34
1553
6
原创 Android 从开发角度来看经典蓝牙和低功耗(BLE)蓝牙的区别
1. 开发分类直接看图。从图中可以看到,对于数据量较大的传输,如音视频等开发,需要使用经典蓝牙模式。而对于现在兴起的 AIOT 物联网、智能家居等领域,则会选择低功耗蓝牙 BLE,因为成本和功耗更低,并对实时性要求更高。从现如今手机的实际体验来看,手机上的蓝牙应该是双模蓝牙,以小米手机为例,它可以连接蓝牙耳机进行听音乐,也可以连接智能家居设备,控制家电。所以,根据上图划分,按照应用划分的...
2020-01-06 11:36:04
1874
RpcPost.zip
2021-03-25
Retrofit简单上手的demo
2018-01-16
Intent传值Demo
2017-06-13
DHTML 手册.chm
2012-10-12
W3CSchool1.chm
2012-10-12
《人件》中文版
2012-09-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人