自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android CameraX 仿一甜相机(录像、拍照、可调节尺寸、聚焦、照明、网格线),最全的CameraX教程

CameraX 是jetpack 组件库中的一个非常重要的API,不同于Camera和Camera2,CameraX 在api解耦性上做出了非常大的调整。以上的一些新增内容,足够我们去替换老板本的Camera或者Camera2 Api。由于本人的设备不支持扩展程序,所以就没有展示效果了,希望国能厂商能升级ROM 支持一下吧。3、绑定ImageCapture图形捕捉以及VideoCapture视频帧捕捉。基于以上的point 创建方式,可以封装为自动聚焦和手动聚焦。11、Extensions 扩展程序使用。.

2022-08-16 12:31:02 7079 5

原创 Android 批量打包 bat脚本

替换成自己项目app打包task名,可以在右侧gradle->app->task->order中找到。替换成想要的输出路径,我这里是拷贝到桌面outputs文件夹中。替换成自己项目app的绝对路径。

2024-07-26 11:38:20 137

原创 javac 生成 jar脚本命令

ps: java代码全路径 javac -d 是用于指定编译输出目录的选项,如果不执行这句,可能会导致修改了java代码后,再次生成的jar 没生效。txt 内容填入版本 和 java文件对应包名。ps:注意class 文件路径格式。

2024-07-23 15:44:44 349 1

原创 Android Studio 突然没有代码提示

关掉省点模式即可。

2024-03-20 17:36:25 151

原创 adb 命令集

【代码】adb 命令集。

2023-09-19 16:22:49 639

原创 Android 跨进程通信并传输复杂数据

AIDL (Android Interface Definition Language) 支持以下数据类型:基本数据类型:int、long、float、double、boolean、char、byte。字符串类型:String。集合类型:List、Map、Set。Parcelable 类型:实现了 Parcelable 接口的自定义类。IBinder 类型:用于跨进程通信的 Binder 类型。数组类型:int[]、String[]、Parcelable[] 等。

2023-09-19 15:49:52 462

原创 Android 调用Unity方法(与Unity 通信)

与unity 开发人员定义好通信方法体 connecterName 以及 方法名。

2023-05-06 15:58:51 645 1

原创 Android 获取屏幕分辨率和真实可以用分辨率

【代码】Android 获取屏幕分辨率和真实可以用分辨率。

2023-04-13 15:54:58 608

原创 Glide 加载Https 配置

最后需要在mainfest 文件配置Module 路径。

2023-03-29 11:00:11 592

原创 Koltin 请求权限(onRequestPermissionsResult 过时)

以下为kotlin 申请权限的方式,在luanch 中传入权限字符串数组。

2023-03-27 11:16:30 700

原创 Android 使用Gson将对象类转成Json对象时出现\u003d问题

这种情况,一般是json 中字段的value 出现"="号,而Gson 解析后会出现编码格式转换,所以会出现\u003d 的问题。

2023-03-02 16:16:49 1896

原创 Android JNI 生成头文件以及cpp详细步骤

配置完之后,Clean一下项目,此时,CMakeLists.txt 就生效了,以及cpp 代码也可以引用。

2023-02-24 17:12:02 1300

原创 Android 音视频学习之《MediaCodec》

MediaCodec 类可用于访问低级媒体编解码器,即编码器/解码器组件。它是 Android 低级多媒体支持基础结构的一部分(通常与MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、 MediaDrm、Image、Surface和一起使用AudioTrack。)1、Client 通过dequeueInputBuffer 申请一个空的buffers缓冲区2、通过queueInputBuffer 将数据填充到缓冲区3、传给编码器或者解码器(Codec)

2023-01-04 11:14:55 842

原创 OkHttp 加密拦截器封装

很多时候,我们都要对request 和response 进行加解密,这时候就需要对Http 重定向,自定义拦截器,将请求和返回值进行拦截,处理后在发送或者解析。下面会分为java 和kotlin 版本。加密会分为get 的参数加密 、post 的body 加密,加密的方式大部分都是使用RSA 加密。直接看代码吧。

2023-01-03 11:50:28 697 1

原创 OkHttp Https 证书忽略

1、实现X509TrustManager 接口。2、创建Client 客户端时使用Trust。

2022-12-28 15:05:18 1350 1

原创 git Filename too long

在jenkins 部署时,通过git拉取代码会出现 Filename too long, 这是某些文件的名称过长导致的。解决方式为:

2022-12-03 16:45:51 1031

原创 Android Jenkins 参数透传配置

Jenkins 透传

2022-11-03 09:47:30 761

原创 《Kotlin系列》之基于协程、Flow、MVVM开发一套相册查询器,PhotoPicker、仿微信相册选择

由于相册查询会使一个持续的过程,所以基于协程+ViewModel 开发的话,会省去很多生命周期的管理,防止内存泄漏和一些引用长持的问题。而Flow 替换RxJava 是由于Flow 的背压模式强于RxJava,也更方便简洁,而且可以对上流和下流管道切换不同的线程。

2022-10-28 17:15:18 716

原创 Jetpack 多个Activity共享ViewModel(AndroidViewModel)

最近在做一个相册的项目, 会有这么一个场景,就是相册列表点击图片进入大图, 如何共享查询后的相册数据。以上最关键的是 activity 的引用以及 viewModels的使用。代码只贴出了关键部分,如果需要看全,可以去我的github 中查看。而viewModels 需要在buildGradle 中引用。

2022-10-21 10:37:39 3273 1

原创 Android 使用Jenkins 自动化多渠道打包并且分发到蒲公英、下发到钉钉通知【即拿即用】

Android 在每个版本测试阶段,通常会因为修复BUG 去验证,都会打出大量的apk,为了方便开发人员和测试人员,就需要我们把打包权利交于测试人员,让他们拥有打包->下载安装一条龙。这样不仅仅方便了测试和开发,在版本流程上也会规范一下,还起到了版本归档的作用。这里有一个配置非常重要,就是Jenkins 透传(意思是,Jenkins 选中的参数,可以透传到Android 项目中使用)至此Jenkins 的配置已经全部结束,下面回到android 的脚本配置。Gradle 选择之前系统设置中配置好的。

2022-10-10 16:55:38 3896 3

原创 修复Gradle 7.0仓库地址不安全警告

大概内容是在存储库中使用不安全的协议,而没有显式的选择,是不受支持的。

2022-08-17 16:44:45 3238 1

原创 ShapeableImageView 的使用,告别shape、三方库

ShapeableImageView 的使用,告别shape、三方库

2022-08-01 18:05:50 597

原创 《Kotlin系列》之协程+Flow+Okhttp3实现多任务下载(暂停、继续)

kotlin+okhttp3实现多任务下载(暂停、继续)

2022-08-01 15:21:09 1477 1

原创 《Kotlin系列》之协程搭配Retrofit+OkHttp3网络请求封装(kotlin+retrofit+okhttp3)

上一篇关于MVVM架构的基类封装,这篇会在MVVM的基础上示范使用kotlin+retrofit+okhttp封装的网络框架,里面会涉及到协程的使用,协程异常处理包装。

2022-07-25 11:30:22 2599 2

原创 《Kotlin系列》之MVVM架构封装(kotlin+mvvm)

目前市面上流行的客户端app的架构基本都是基于MVVM设计的,其实就是为了去更好的使用jetpack组件,mvvm配合jetpack去搭建的话,不仅仅在业务上达到了解耦、方便维护和review的效果,如果配合lifeCycle的使用,更能有效的减少对象生命周期的控制问题导致的内存泄漏。而使用kotlin的初衷,如flow,能很好的替代RxJava和jetpack中的LiveData,如协程能更轻量合理减少的对于线程的创建开销、线程切换负责、线程关闭等一系列繁琐的操作。...............

2022-07-22 14:40:26 5080 1

原创 《Kotlin 系列》之Room 数据库+协程操作集(kotlin+room)

1、导入room kt库,注意,使用 kapt是必要的!!2、数据实体类编码3、数据访问对象 (DAO)几乎所有的方法都使用了suspend 挂起,方便在协程中使用,还无需手动切换线程。以上的Dao 包含了 增(insert)\删(Delete)\改(Update)\查(Query),其中Update 可以更新一整行,也可以对某个字段单独更新。4、数据库类数据库类可以设计成一个单例模式,如下:至此,三个Room组成部分对应的编码已经完毕,下面看看怎么使用。删:改:以上就是基本的

2022-07-14 10:38:16 3229 2

原创 java.lang.IllegalArgumentException: Unable to create call adapter for class java.lang.Object

使用Kotlin 协程 和retrofit +okhttp suspend网络请求时,会出现java.lang.IllegalArgumentException: Unable to create call adapter for class java.lang.Object修复:将Retrofit 相关版本升级即可!

2022-07-08 17:47:33 1547

原创 DataBindingUtil.setContentView(@NonNull Activity activity, int layoutId) return null

lib 包中的AndroidManifest package 包名和app 中AndroidManifest 包名一致,导致识别失败,没有返回对应binding.

2022-07-08 17:30:57 904

原创 ViewModelProvider.of 过时方法解决

过时方法替换成

2022-07-06 09:48:15 525

原创 Kotlin之 Databinding 异常

Kotlin之 Databinding 异常

2022-07-04 18:06:57 787 1

原创 Android跨进程通信之《AIDL》

Android跨进程通信之《AIDL》

2022-07-04 09:52:56 677 1

原创 Android 发布Library 到远程maven 私服仓库(Nexus)

前言一、使用Nexus3.x搭建maven私服    1、下载Nexus    2、Nexus的安装与配置    3、Nexus 私服仓库的创建二、Android Gradle 配置远程maven 脚本   1、AndroidGradle7.0以前   1、AndroidGradle7.0以后很多小伙伴在开发Android的时候,特别是一些ToB项目中,往往要出不同的app,但是依赖的业务流程基本都是一样的,相当于多个app要依赖一个lib。为了方便维护lib,一般做法会有一下几种:而

2022-07-01 14:11:31 1302

原创 RecyclerView Item 根据 x,y 坐标得到当前position(位置)

RecyclerView Item 根据坐标获取当前position

2022-06-21 10:57:44 1703

原创 Android Rsa解密出现乱码问题

Rsa 私钥解密通常java 解密方法如下 /** * RSA私钥解密 * * @param str 加密字符串 * @param privateKey 私钥 * @return 明文 * @throws Exception 解密过程中的异常信息 */ public static String decrypt(String str, String privateKey) { //64位解码

2022-05-27 16:44:36 1066 1

原创 Android 全屏悬浮窗适配(悬浮窗沉浸式)

前言由于Android 高版本的类型限制,如果我们使用WindowsManager 做悬浮窗,会被限制在当前窗口内容中。而当前窗口大小会限制在状态栏和导航栏之间,所以会导致悬浮窗沉浸不了状态栏。高版本windowsmanager 限制 源码 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//6.0+ mParams.type = WindowManager.LayoutParams.TYPE_.

2022-03-22 09:21:40 5918

原创 JetPack系列之LiveData浅析和使用

前言:以后会更新自己对JetPack 的使用小心得很遇到的坑LiveData 简介和优缺点LiveData 是jetpack 组件中最核心的组件之一。可以这么说,如果使用JetPack 没有体验一下LiveData的话,那相当于白扯 ~LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。这种感知能力可确保 LiveData 仅更新处于活跃生命周期状态的

2022-03-07 15:24:04 2891 1

原创 RecyclerView 固定高度

public class MaxHeightRecyclerView extends RecyclerView { private int mMaxHeight; public MaxHeightRecyclerView(Context context) { super(context); } public MaxHeightRecyclerView(Context context, AttributeSet attrs) { super(

2022-03-04 09:32:35 452

原创 Android 发布代码到github 并且部署到 JitPack maven 仓库详细步骤

废话不多说,直接上步骤干货Step1在项目根目录的build.gradle 文件中加入buildscript { repositories { maven { url 'https://jitpack.io' } } dependencies { classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' }}allprojects { reposit

2022-03-03 11:43:06 3514 7

原创 修复 RecyclerView java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item positio 报错

代码】修复RecyclerViewjava.lang.IndexOutOfBoundsExceptionInconsistencydetected.Invaliditempositio报错。

2022-03-03 09:30:53 2691

原创 解决CoordinatorLayout+NestedScrollView+BottomSheetBehavior+RecyclerView 快速滑动冲突

当我们使用CoordinatorLayout中的 BottomSheetBehavior 抽屉式布局时, 快速滑动RecyclerView或者NestedScrollView 时,会触发BottomSheetBehavior 的STATE_COLLAPSED 动作,导致抽屉布局被异常关闭,效果很差。解决:查看BottomSheetBehavior 源码发现,使抽屉布局关闭的是如下代码 @Override public void onNestedPreScroll( @

2022-02-23 09:25:20 1290 2

nexus-3.38.0-01-win64

nexus

2022-06-14

空空如也

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

TA关注的人

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