- 博客(38)
- 资源 (6)
- 收藏
- 关注
原创 Android开发 基于ARouter开源的路由框架的YmRouter
ARouter是一个用于Android的路由框架,它能够帮助开发者实现组件之间的通信和页面跳转。ARouter的核心原理是通过注解来标记和生成路由映射表。开发者只需要在需要跳转的页面上添加注解,然后在代码中通过路由表找到对应的页面进行跳转。ARouter提供了丰富的功能和灵活的配置,可以支持参数传递、拦截器、页面拦截、自动注入等功能。开发者可以根据自己的需求进行配置和使用。除了页面跳转,ARouter还提供了一些扩展功能,例如服务发现、事件通知、模块化开发等,可以帮助开发者更好地组织和管理代码。
2024-01-08 20:40:19 899 1
原创 Android开源 Skeleton 骨架屏 V1.3.0
骨架屏的作用是在网络请求较慢时,提供基础占位,当数据加载完成后,恢复数据展示。它可以给用户一种很自然的过渡,避免页面长时间白屏或者闪烁等情况。Skeleton 除实现静态的骨架图展示和新增了骨架屏闪烁动画,骨架屏动画是指在页面加载时,先显示一个简单的页面框架(骨架屏),然后再加载实际的页面内容。这样可以让用户在等待页面加载的过程中,先看到一个基本的页面结构,避免了空白页面的尴尬和用户的无知情况。骨架屏动画的优点是可以提高用户体验,让用户感觉页面加载更快,同时也可以减轻服务器的压力。
2023-10-04 22:09:25 2269 5
原创 Android开源 日志框架 LogDog V2.3.1
LogDog 2.3.1版本,比较之前版本,变化有点大,如果已经引用之前的版本,需要修改初始化和初始化配置,但是在log 打印调用方法,不需要更改,LogDog框架始终以兼容的角度去优化框架,不会出现更新版本后,需要大量更改以前的代码调用,而是尽可能采取扩展式优化,减少重构式或者重写式优化,不管怎么样,在使用LogDog时哪怕要重写也是采用内部重写,外部调用方法不变。
2023-09-17 01:12:47 940 1
原创 Android开源 Skeleton 骨架屏
骨架屏的作用是在网络请求较慢时,提供基础占位,当数据加载完成后,恢复数据展示。它可以给用户一种很自然的过渡,避免页面长时间白屏或者闪烁等情况。Skeleton 除实现静态的骨架图展示和新增了骨架屏闪烁动画,骨架屏动画是指在页面加载时,先显示一个简单的页面框架(骨架屏),然后再加载实际的页面内容。这样可以让用户在等待页面加载的过程中,先看到一个基本的页面结构,避免了空白页面的尴尬和用户的无知情况。骨架屏动画的优点是可以提高用户体验,让用户感觉页面加载更快,同时也可以减轻服务器的压力。
2023-08-06 03:07:32 3181
原创 Android开源 自定义emoji键盘,EmojiPack v2.1版本
当前已提供emoji的显示和emoji的选择自定义键盘,在emoji显示这一方面,大量的其他框架使用了自定义view来实现emoji的显示,也是如此实现,但是在实际开发时,开发人员,将不在需要大量使用内的自定义view,只需要在activity内完成一次性配置即可,所以的兼容性非常强,在使用EmojiPack时不再需要开发人员大量替换原本的显示控件,提高开发效率和减少bug的产生。
2023-07-24 01:36:50 1355 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 1090
原创 Android开源 我的开源Android Log框架 LogDog “日志狗”
LogDog 是一个开源的 Java 日志框架,它提供了一种简单、高效的方式来管理应用程序的日志。简单易用:LogDog 提供了一个简单的 API,可以使用它来记录日志,而不需要写复杂的代码。多种输出方式:LogDog 支持多种输出方式,包括控制台输出、文件输出、Syslog 输出等。日志级别控制:LogDog 提供了多种日志级别控制,包括 DEBUG、INFO、WARN、ERROR 等。可扩展性:开发人员可以通过封装进行扩展,开发者可以自定义输出方式和日志格式等。性能优化。
2023-05-01 01:17:12 2347
原创 Android开发 Camera2获取输出SurfaceTexture
Camera2 的 API 模型被设计成一个 Pipeline(管道),它按顺序处理每一帧的请求并返回请求结果给客户端。下面这张来自官方的图展示了 Pipeline 的工作流程,我们会通过一个简单的例子详细解释这张图为了解释上面的示意图,假设我们想要同时拍摄两张不同尺寸的图片,并且在拍摄的过程中闪光灯必须亮起来。创建一个用于从 Pipeline 获取图片的 CaptureRequest。修改 CaptureRequest 的闪光灯配置,让闪光灯在拍照过程中亮起来。
2023-04-11 23:30:14 1263
原创 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 439
原创 Android开发(Jetpack) 简单使用WorkManager
WorkManager 是适合用于持久性工作的推荐解决方案。如果工作始终要通过应用重启和系统重新启动来调度,便是持久性的工作。由于大多数后台处理操作都是通过持久性工作完成的,因此 WorkManager 是适用于后台处理操作的主要推荐 API。
2023-01-27 20:12:31 749
原创 Android开发(Jetpack) 学习CameraX 自定义相机实现
在实际开发中经常可能碰到需要拍照的需求,但调用系统的照相机无法实现自己的自定义功能,自己封装Camera2有些麻烦,且没有处理好容易造成内存泄漏和闪退。使用CameraX虽然它属于再封装不够底层,但只是自定义相机的界面完全足够了。以下是使用kotlin实现的实例代码,代码还有待优化。/*** @describe 自定义相机 拍照*/}}= null) {}.build()}.build().build()}= null}if (!}
2022-11-12 00:59:31 3063 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 6240 17
原创 Android开发 Android 软盘 遮一部分EditText
此属性的设置影响两个 事情:当活动变为 用户关注的焦点。活动的主窗口是否为 调整大小以为软键盘或其内容腾出空间 平移以使当前焦点在窗口的一部分被覆盖时可见 软键盘。在开发中对于EditText的高度往往我们设置了固定大小,这就造成了软盘定位到输入文字底的高度,如果EditText固定高度高于文字高度就会使软盘遮住超过文字高度的部分,所有在设置EditText的高度时我们可以使用。此处设置的值(与 除外)将覆盖主题中设置的值。该设置必须是下表中列出的值之一或 一个值加一个值的组合。各个值由竖线 “|”分隔,
2022-08-01 14:53:14 1294
原创 自学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 1296
原创 自学Android开发 关于OkHttp3的request和respond拦截打印Log
在开发Android项目时,一定需要和后端对接网络请求,但在因为现在都JSON格式的数据结构,在数据字段前后不一致是Android端是无法判断是是字段错误还是数据本身没有值。所有在数据还没有被Gson反序列前拦截 回应并打印body 就可以知道后端传过来的知道和值的真实情况。这样就很清楚是Android端的问题还是后端的问题,也可以减少debug的时间。关于Okhttp3+retrofit2+Rxjava3的具体配置可以参考自学Android开发 我的Retrofit2+RxJava3的封装拦截器代码
2022-07-11 21:36:06 1568
原创 自学Android开发 关于EditText android:imeOptions 设置与多行显示的冲突
关于EditText android:imeOptions 设置与多行输入的冲突
2022-07-07 21:49:26 1152
原创 自学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 1366
原创 自学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 640
原创 自学Android开发 AES加密
一、问题在Java 后端发来的AES加密数据时,发现Android APP不能解密 而且Android 端 加密同样的数据返回的结果居然不一致,所以我在网上查询后,发现在SecureRandom在产生安全随机数时 Windows系统和Linux系统的机制不一样,所以在同样的java AES加密源码加密同意的数据产生不一样的加密结果。下面我给出网络的常用的AES加密的源码。网络常用的AES加解密源码:/** * AES加密字符串 * * @param conte
2022-03-30 00:14:17 2797 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 3582
原创 IDEA start.spring.io 连接超时 永久解决。
IDEA Spring Intializr 创建spring项目时,start.spring.io连接超时的永久解决。
2022-01-06 17:07:28 13023 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 2161 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 18440 30
原创 自学Android开发 View的事件分发机制
一、触摸事件分析任何事物都有一个起点,触摸事件也是如此。当手指触摸手机的屏幕后发生什么呢?首先是由Linux内核调用触摸屏驱动,然后触摸屏驱动通知Android OS 的HAL层的相关Library,最后相关的Library会通知位于应用层的程序。二、事件分发事件分发就是对MotionEvent事件的分发过程,当一个MotionEvent事件产出后系统就需要把这个事件传递给一个具体的View,而这个传递的过程就是事件分发。分发过程由这几个方法完成:dispathT...
2021-11-13 01:12:29 2102
原创 自学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 4115 2
原创 自学 Android 关于MediaRecorder的对象复用
目录一、MediaRecorder 概览二、权限申请1、清单注册2、动态申请三、MediaRecorder的使用1、控件的监听2、开始录音3、结束录音4、重点分析一、MediaRecorder 概览Android 多媒体框架支持捕获和编码各种常见的音频和视频格式。如果设备硬件支持,您可以使用MediaRecorderAPI。本文档向您介绍如何使用MediaRecorder编写能够从设备麦克风捕获音频、保存音频并(使用MediaPlayer)进行播放的...
2021-11-05 14:44:34 3029
原创 自学Android开发 Activity的学习
一、什么是activity?二、初步了解activity三、近一步了解四、推荐的三方工具助理开发
2021-10-25 19:34:29 1273
原创 自学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 867 1
原创 Android 常用布局
一、什么是布局?布局定义了应用中的界面结构。布局中的所有元素均使用View和ViewGroup对象的层次结构进行构建。View通常用于绘制用户可看到并与之交互的内容。ViewGroup则是不可见的容器,用于定义View和其他ViewGroup对象的布局结构。注意:布局不建议一个xml代码有太多的代码,加载布局是需要时间,太多代码会使布局需要更多的时间,造成界面UI加载缓慢。二、有哪些常用布局ConstraintLayout(自适应界面)这个布局是Android stud...
2021-10-16 22:44:51 1005
原创 解决 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 10720 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 15525 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 603 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 2452
原创 Windows10系统 MySQL数据库安装
目录一、下载MySQL安装包二、配置环境变量三、my.ini配置四、cmd指令安装MySQL数据库一、下载MySQL安装包官网下载地址:mysql社区版;下载红线圈起来的哪项:下载后解压,把解压包mysql-8.0.26-winx64复制到你觉得舒服的盘。二、配置环境变量1、右键桌面的此电脑 > 找到高级系统设置> 进入最下面环境变量(N)...> 找到系统变量选项框 点击Path再点击编辑 > 点击新建然后点击浏览找到你复制的解压包...
2021-09-16 01:52:08 911
原创 自学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 1699
转载 Android Service概览
服务概览Service是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。以下是三种不同的服务类型:前台前台服务执行一些用户能注意到的操作。例如,音频应用会使用前台服务来播放音频曲目。前台服务必须显示通知。即使用户停止与应用的交互,前台服务仍会继续运行.
2021-09-09 00:27:28 155
原创 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 368
Nexus 是Maven仓库管理器
2023-08-09
CommonTitleBar自定义的公共标题栏
2022-11-09
Android 开发 Google 官方文档
2022-09-04
Tengine-Kit的github源码
2022-08-09
基于 PictureSelector图片选择器
2022-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人