自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个从事Android开发的平凡工程师

相互学习,相互进步,移动开发未来可期。

  • 博客(38)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android开发 基于ARouter开源的路由框架的YmRouter

ARouter是一个用于Android的路由框架,它能够帮助开发者实现组件之间的通信和页面跳转。ARouter的核心原理是通过注解来标记和生成路由映射表。开发者只需要在需要跳转的页面上添加注解,然后在代码中通过路由表找到对应的页面进行跳转。ARouter提供了丰富的功能和灵活的配置,可以支持参数传递、拦截器、页面拦截、自动注入等功能。开发者可以根据自己的需求进行配置和使用。除了页面跳转,ARouter还提供了一些扩展功能,例如服务发现、事件通知、模块化开发等,可以帮助开发者更好地组织和管理代码。

2024-01-08 20:40:19 773 1

原创 Android开源 Skeleton 骨架屏 V1.3.0

骨架屏的作用是在网络请求较慢时,提供基础占位,当数据加载完成后,恢复数据展示。它可以给用户一种很自然的过渡,避免页面长时间白屏或者闪烁等情况。Skeleton 除实现静态的骨架图展示和新增了骨架屏闪烁动画,骨架屏动画是指在页面加载时,先显示一个简单的页面框架(骨架屏),然后再加载实际的页面内容。这样可以让用户在等待页面加载的过程中,先看到一个基本的页面结构,避免了空白页面的尴尬和用户的无知情况。骨架屏动画的优点是可以提高用户体验,让用户感觉页面加载更快,同时也可以减轻服务器的压力。

2023-10-04 22:09:25 1940 3

原创 Android开源 日志框架 LogDog V2.3.1

LogDog 2.3.1版本,比较之前版本,变化有点大,如果已经引用之前的版本,需要修改初始化和初始化配置,但是在log 打印调用方法,不需要更改,LogDog框架始终以兼容的角度去优化框架,不会出现更新版本后,需要大量更改以前的代码调用,而是尽可能采取扩展式优化,减少重构式或者重写式优化,不管怎么样,在使用LogDog时哪怕要重写也是采用内部重写,外部调用方法不变。

2023-09-17 01:12:47 631 1

原创 Android开源 Skeleton 骨架屏

骨架屏的作用是在网络请求较慢时,提供基础占位,当数据加载完成后,恢复数据展示。它可以给用户一种很自然的过渡,避免页面长时间白屏或者闪烁等情况。Skeleton 除实现静态的骨架图展示和新增了骨架屏闪烁动画,骨架屏动画是指在页面加载时,先显示一个简单的页面框架(骨架屏),然后再加载实际的页面内容。这样可以让用户在等待页面加载的过程中,先看到一个基本的页面结构,避免了空白页面的尴尬和用户的无知情况。骨架屏动画的优点是可以提高用户体验,让用户感觉页面加载更快,同时也可以减轻服务器的压力。

2023-08-06 03:07:32 2557

原创 Android开源 自定义emoji键盘,EmojiPack v2.1版本

当前已提供emoji的显示和emoji的选择自定义键盘,在emoji显示这一方面,大量的其他框架使用了自定义view来实现emoji的显示,也是如此实现,但是在实际开发时,开发人员,将不在需要大量使用内的自定义view,只需要在activity内完成一次性配置即可,所以的兼容性非常强,在使用EmojiPack时不再需要开发人员大量替换原本的显示控件,提高开发效率和减少bug的产生。

2023-07-24 01:36:50 1198 1

原创 Android开发 LogDog (日志狗)V2.0.0

LogDog V1.0 版本LogDog V1.2版本/*** @param printer 打印开关* @param write 写文件开关*/注意:printer 和write ,这两个开关将不会被LogDog.Builder 覆盖,也不会覆盖LogDog.Builder中的配置。

2023-06-04 22:45:05 878

原创 Android开发 LogDog (日志狗)V1.2.0

Android开源Log框架 LogDog 更新版本 V1.20 正式版 发布

2023-05-08 00:22:37 600 2

原创 Android开源 我的开源Android Log框架 LogDog “日志狗”

LogDog 是一个开源的 Java 日志框架,它提供了一种简单、高效的方式来管理应用程序的日志。简单易用:LogDog 提供了一个简单的 API,可以使用它来记录日志,而不需要写复杂的代码。多种输出方式:LogDog 支持多种输出方式,包括控制台输出、文件输出、Syslog 输出等。日志级别控制:LogDog 提供了多种日志级别控制,包括 DEBUG、INFO、WARN、ERROR 等。可扩展性:开发人员可以通过封装进行扩展,开发者可以自定义输出方式和日志格式等。性能优化。

2023-05-01 01:17:12 1637

原创 Android开发 Camera2获取输出SurfaceTexture

Camera2 的 API 模型被设计成一个 Pipeline(管道),它按顺序处理每一帧的请求并返回请求结果给客户端。下面这张来自官方的图展示了 Pipeline 的工作流程,我们会通过一个简单的例子详细解释这张图为了解释上面的示意图,假设我们想要同时拍摄两张不同尺寸的图片,并且在拍摄的过程中闪光灯必须亮起来。创建一个用于从 Pipeline 获取图片的 CaptureRequest。修改 CaptureRequest 的闪光灯配置,让闪光灯在拍照过程中亮起来。

2023-04-11 23:30:14 1111

原创 Android开发 Android四大组件之 BroadcastReceiver(广播)

从 Android 9(API 级别 28)开始,NETWORK_STATE_CHANGED_ACTION 广播不再接收有关用户位置或个人身份数据的信息。此外,如果您的应用安装在搭载 Android 9 或更高版本的设备上,则通过 WLAN 接收的系统广播不包含 SSID、BSSID、连接信息或扫描结果。要获取这些信息,可以调用 getConnectionInfo()获取。从 Android 8.0(API 级别 26)开始,系统对清单声明的接收器施加了额外的限制。

2023-03-26 09:24:17 354

原创 Android开发(Jetpack) 简单使用WorkManager

WorkManager 是适合用于持久性工作的推荐解决方案。如果工作始终要通过应用重启和系统重新启动来调度,便是持久性的工作。由于大多数后台处理操作都是通过持久性工作完成的,因此 WorkManager 是适用于后台处理操作的主要推荐 API。

2023-01-27 20:12:31 625

原创 Android开发(Jetpack) 学习CameraX 自定义相机实现

在实际开发中经常可能碰到需要拍照的需求,但调用系统的照相机无法实现自己的自定义功能,自己封装Camera2有些麻烦,且没有处理好容易造成内存泄漏和闪退。使用CameraX虽然它属于再封装不够底层,但只是自定义相机的界面完全足够了。以下是使用kotlin实现的实例代码,代码还有待优化。/*** @describe 自定义相机 拍照*/}}= null) {}.build()}.build().build()}= null}if (!}

2022-11-12 00:59:31 2735 9

原创 Android开发 APP代码安装APK安装包

虽然在在AndroidManifest.xml添加了权限,但还是需求判断和授权,而且在Android 8.0(即Android O) 之前,设置 中的 允许安装未知来源 是针对所有APP的,只要开启了,那么所有的未知来源APP都可以安装。newApkPath就是你需要安装apk的绝对地址,其他消息除“.fileprovider” 信息可以自定义外,其他皆不需要更改,自定义时需要和AndroidManifest.xml 注册文件 一致。文件,编写需要安装apk 的存在路径或者上级路径,当然文件名可以自定义。

2022-09-12 00:29:50 5339 7

原创 Android开发 Android 软盘 遮一部分EditText

此属性的设置影响两个 事情:当活动变为 用户关注的焦点。活动的主窗口是否为 调整大小以为软键盘或其内容腾出空间 平移以使当前焦点在窗口的一部分被覆盖时可见 软键盘。在开发中对于EditText的高度往往我们设置了固定大小,这就造成了软盘定位到输入文字底的高度,如果EditText固定高度高于文字高度就会使软盘遮住超过文字高度的部分,所有在设置EditText的高度时我们可以使用。此处设置的值(与 除外)将覆盖主题中设置的值。该设置必须是下表中列出的值之一或 一个值加一个值的组合。各个值由竖线 “|”分隔,

2022-08-01 14:53:14 1084

原创 自学Android开发 微信支付签名算法

appidAppID,mch_id商户号,nonce_str随机字符串,prepay_id预支付交易会话ID等在下一步将会使用到。"sign""(二)中的生成签名,不是(一)中的签名sign","prepay_id""(一)中prepay_id","nonce_str""(一)中nonce_str","err_code_des""该订单已支付""mch_id""(一)中的mch_id","appid""(一)中的APPID","timestamp""(二)中的时间戳"...

2022-07-31 02:28:54 1170

原创 自学Android开发 关于OkHttp3的request和respond拦截打印Log

在开发Android项目时,一定需要和后端对接网络请求,但在因为现在都JSON格式的数据结构,在数据字段前后不一致是Android端是无法判断是是字段错误还是数据本身没有值。所有在数据还没有被Gson反序列前拦截 回应并打印body 就可以知道后端传过来的知道和值的真实情况。这样就很清楚是Android端的问题还是后端的问题,也可以减少debug的时间。关于Okhttp3+retrofit2+Rxjava3的具体配置可以参考自学Android开发 我的Retrofit2+RxJava3的封装拦截器代码

2022-07-11 21:36:06 1397

原创 自学Android开发 关于EditText android:imeOptions 设置与多行显示的冲突

关于EditText android:imeOptions 设置与多行输入的冲突

2022-07-07 21:49:26 1076

原创 自学Android开发 我的Retrofit2+RxJava3的封装

一、依赖配置在Model:Android_xxxx.app build.gradle 文件夹里添加dependencies { //retrofit2 implementation 'com.squareup.retrofit2:retrofit:2.9.0' //Gson implementation 'com.squareup.retrofit2:converter-gson:2.9.0' //Jackson //implementation

2022-05-25 23:47:23 1207

原创 自学Android开发 List集合转树形结构

在开发时因为数据库存储的信息取出后为List线形结构,通过一个字段来映射其父子关系,例如评论和评论的子评论,数据库存储时通过一个parent_id 字段保存父评论的ID,来标识它与父评论的关系,但是在前端显示时需要对取出的线形数据转换为有多级数据的List集合的树状结构,所以会转换为树状结构和优化转换方法很重要的。例子实体类public class Home { private long id; private long parent_id; private List<Home>

2022-05-15 12:28:07 587

原创 自学Android开发 AES加密

一、问题在Java 后端发来的AES加密数据时,发现Android APP不能解密 而且Android 端 加密同样的数据返回的结果居然不一致,所以我在网上查询后,发现在SecureRandom在产生安全随机数时 Windows系统和Linux系统的机制不一样,所以在同样的java AES加密源码加密同意的数据产生不一样的加密结果。下面我给出网络的常用的AES加密的源码。网络常用的AES加解密源码:/** * AES加密字符串 * * @param conte

2022-03-30 00:14:17 2653 1

原创 自学Android开发 Java和Android SDK的Base64

一、问题在Android开发使用AES加密时,会发现Android SDK自带了Base64,但是它加密的结果和Java JDK的Base64 不一致,所以造成了Java 服务后端的加密数据,用SDK的Base64无法解密,造成了异常。后来Android 开发也引入了Java JDK的Base64, 但是有API限制 ,必须是SDK API 26(Android 8.0)以上才能使用。使用在Android 开发项目时不方便兼容处理。最终我的解决方案是直接引用 JDK的Base64。二、JDK Bas

2022-03-29 23:42:46 3504

原创 IDEA start.spring.io 连接超时 永久解决。

IDEA Spring Intializr 创建spring项目时,start.spring.io连接超时的永久解决。

2022-01-06 17:07:28 12248 9

原创 自学Android开发 异步任务和线程池

目录一、异步任务二、AsyncTask1、官方文档2、AsyncTask的使用三、Handler+ Looper. getMainLooper +Thread/ Executors四、Thread/ Executors+ Handler+ HandlerThread五、Thread/ Executors+ Activity. runOnUiThread六、线程池1、TheadPoolExecutor2、newFixedThreadPool3、newCachedTh

2021-11-29 02:50:05 2126 1

原创 自学Android开发 Fragment的onActivityCreated()被弃用

一、Fragment的生命周期1、官方生命周期图二、onActivityCreated()的弃用1、官方更新文档版本 1.3.0-alpha022020 年 3 月 18 日发布了androidx.fragment:fragment:1.3.0-alpha02、androidx.fragment:fragment-ktx:1.3.0-alpha02和androidx.fragment:fragment-testing:1.3.0-alpha02。。新功能添加....

2021-11-16 01:19:31 16735 30

原创 自学Android开发 View的事件分发机制

一、触摸事件分析任何事物都有一个起点,触摸事件也是如此。当手指触摸手机的屏幕后发生什么呢?首先是由Linux内核调用触摸屏驱动,然后触摸屏驱动通知Android OS 的HAL层的相关Library,最后相关的Library会通知位于应用层的程序。二、事件分发事件分发就是对MotionEvent事件的分发过程,当一个MotionEvent事件产出后系统就需要把这个事件传递给一个具体的View,而这个传递的过程就是事件分发。分发过程由这几个方法完成:dispathT...

2021-11-13 01:12:29 1971

原创 自学Android开发 动态申请权限(多个权限)

目录一、manifest 注册权限二、代码动态申请权限三、对勾选了“不在询问”的处理一、manifest 注册权限<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xxxxxxx"> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses

2021-11-10 18:04:16 3980 2

原创 自学 Android 关于MediaRecorder的对象复用

目录一、MediaRecorder 概览二、权限申请1、清单注册2、动态申请三、MediaRecorder的使用1、控件的监听2、开始录音3、结束录音4、重点分析一、MediaRecorder 概览Android 多媒体框架支持捕获和编码各种常见的音频和视频格式。如果设备硬件支持,您可以使用MediaRecorderAPI。本文档向您介绍如何使用MediaRecorder编写能够从设备麦克风捕获音频、保存音频并(使用MediaPlayer)进行播放的...

2021-11-05 14:44:34 2846

原创 自学Android开发 Activity的学习

一、什么是activity?二、初步了解activity三、近一步了解四、推荐的三方工具助理开发

2021-10-25 19:34:29 606

原创 自学Android 开发 我的第一个Android程序

一、新建项目1.1、项目的新建1.2、打开项目1.3、项目配置二、了解项目目录结构2.1、java代码目录2.2、xml目录2.3、测试目录三、编写java四、编写UI界面XML五、编译项目六、导入项目七、日志八、打包项目...

2021-10-20 23:47:04 509 1

原创 Android 常用布局

一、什么是布局?布局定义了应用中的界面结构。布局中的所有元素均使用View和ViewGroup对象的层次结构进行构建。View通常用于绘制用户可看到并与之交互的内容。ViewGroup则是不可见的容器,用于定义View和其他ViewGroup对象的布局结构。​注意:布局不建议一个xml代码有太多的代码,加载布局是需要时间,太多代码会使布局需要更多的时间,造成界面UI加载缓慢。二、有哪些常用布局ConstraintLayout(自适应界面)这个布局是Android stud...

2021-10-16 22:44:51 739

原创 解决 if you already hava 64-bit JDK installed,define a JAVA_HOME variable in Computer>System....

启动Android studio 弹窗 提示如图 一般是修改studio64.exe.vmoptions文件出差。例如我的studio64.exe.vmoptions位于C:\Users\24359\AppData\Roaming\Google\AndroidStudio2020.3/studio64.exe.vmoptionsAppData文件夹是隐藏的,你需要在顶部查看里面勾选隐藏的项目,才能看到这个文件夹;出现这个问题一般是studio64.exe.vmoptions配置出现问题,如.

2021-10-09 20:14:42 10610 2

原创 Windows 10系统下Android Studio安装与配置

Android studio下载在Windows系统下载任何软件,我的建议是去官网下载,避免不必要的麻烦和其他影响。Android studio下载地址https://developer.android.google.cn/studio/点击红框里的按钮。再这里我们可以看到Windows 64位有两个版本,一个是exe安装版,一个是免安装的压缩版,按照官方推荐,我们再次点击红框选择安装版。然后会有一个弹出如图,勾选紫色框内的内容,接着红框里的按钮会变绿 点击红框内的按钮就可以..

2021-10-09 18:05:19 15198 3

原创 Openfire 用户密码加密

Openfire是通过org.jivesoftware.util.Blowfish.java实现的加密。避免大家找不到源码文件,我已给出源码。Blowfish.java 源码:/* * Adapted from Markus Hahn's Blowfish package so that all functionality is * in a single source file. Please visit the following URL for his excellent * pa

2021-10-08 20:02:55 551 1

原创 Android Studio 自动生成注释(作者、日期、联系方式、描述)

第一步打开Android studio,然后点击顶部的File -> setting...第二步进入了Android studio 设置界面,接着Editor -> File and Code Templates->includes ->File Header,在编写注释时注意注解的格式 /** */ 或者 //。最后 Apply -> OK,大功告成。注意:注释可以引用一些变量,下面是工具提供的引用变量${PACKAGE_NAM...

2021-10-06 22:40:51 2274

原创 Windows10系统 MySQL数据库安装

目录一、下载MySQL安装包二、配置环境变量三、my.ini配置四、cmd指令安装MySQL数据库一、下载MySQL安装包官网下载地址:mysql社区版;下载红线圈起来的哪项:下载后解压,把解压包mysql-8.0.26-winx64复制到你觉得舒服的盘。二、配置环境变量1、右键桌面的此电脑 > 找到高级系统设置> 进入最下面环境变量(N)...> 找到系统变量选项框 点击Path再点击编辑 > 点击新建然后点击浏览找到你复制的解压包...

2021-09-16 01:52:08 734

原创 自学Android开发 Service 的多种启动方式

目录一、Service生命周期二、Service生命周期相关的方法1、onCreate()2、onBind(Intent intent)3、onStartCommand(Intent intent, int flags, int startId)4、onRebind(Intent intent)5、onUnbind(Intent intent)6、stopSelf()7、stopSelfResult(int startId)8、onDestroy()三、直接启动服

2021-09-12 23:57:50 1429

转载 Android Service概览

服务概览Service是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。以下是三种不同的服务类型:前台前台服务执行一些用户能注意到的操作。例如,音频应用会使用前台服务来播放音频曲目。前台服务必须显示通知。即使用户停止与应用的交互,前台服务仍会继续运行.

2021-09-09 00:27:28 133

原创 Android studio Build和Logcat 乱码

Android studio Build和Logcat 中文乱码的问题的完全解决今天看到了好多解决Android studio Build和Logcat 中文乱码的问题很多方案都过于复杂还不一定能操作。问题:用图说话。第一步 打开 打开 Android studio 顶部的 Help -> Edit Custom VM Options…。现在应该打开了 studio60.exe.vmoptions 这个文件,复制这段 -Dfile.encoding=UTF-8 粘贴到 studio60.ex

2021-08-12 11:12:56 323

Android studio 2021.3.1

Android studio 2021.3.1

2024-04-17

Nexus 是Maven仓库管理器

Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器

2023-08-09

CommonTitleBar自定义的公共标题栏

开发过程中,如果页面过多,需要构建大量重复的标题栏布局,浪费开发时间且不利于后期维护。CommonTitleBar 自定义的公共标题栏提高我们的开发效率

2022-11-09

Android应用的Crash闪退捕获

自定义一个Android应用的Crash异常捕获,不影响Android运行的性能,严重异常依旧Crash APP

2022-11-03

Android应用的Crash闪退捕获

自定义一个Android应用的Crash异常捕获器

2022-11-02

Android 开发 Google 官方文档

这是一个用于快捷查看 Android 开发官方文档的快捷方式,注意这个快捷方式需要你已经安装了谷歌浏览器才可以使用,如果还是打不开可能是快捷方式的打开地址和你安装谷歌浏览器地址不一致造成的,建议修改快捷方式的打开地址。

2022-09-04

Android 12 全版本 图片保存到相册

Android 12 全版本 图片保存到相册

2022-08-15

Tengine-Kit的github源码

TengineKit.Image类封装了一系列工具API,帮助开发者快速方便的处理图片相关的功能,具体功能请查阅文档,这里我们将用这个TengineKit.Image里面的API实现Android前置摄像头视频流转为Bitmap(YUV_NV21转RGBA)。

2022-08-09

基于 PictureSelector图片选择器

PictureSelector一款针对Android平台下的图片选择器,支持从相册获取图片、视频、音频&拍照,支持裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能,支持动态获取权限&适配Android 5.0+系统的开源图片选择框架。

2022-08-09

Android 图片点击手势放大缩小

Android 开发 实现多多张图片点击放大可以通过手势放大缩小。

2022-08-03

ADB.zip 内有使用文档

ADB.zip 内有使用文档

2022-03-16

android studio 免安装包 2020-3.1.zip

windows版 Android studio 2020-3.1 免安装包

2021-12-25

钉钉内网穿透一键启动.zip

已通过bat脚本实现了 一键启动内网穿透,一次配置后,一键启动。

2021-12-11

空空如也

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

TA关注的人

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