自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2 files found with path ‘lib/armeabi-v7a/libopencv_java3.so‘ from inputs

2 files found with path

2023-06-30 11:32:40 432

转载 Android DiffUtil 导致索引越界异常

节能刷新移动设备屏幕大小有限(不得不说我是顽固的小屏爱好者,大于5.5寸难以接受,时代已经抛弃我了哈哈),列表(List)可以说是一个出现非常高频的交互设计。大多数情况下我们的列表不仅仅是一次性加载本地数据,而要应付来自网络的各种动态内容,可能是增加、删除等操作。在Android开发中,一个耳熟能详的方法就是 notifyDataSetChanged ,在适配器(Adapter)的设计模式下,每当我们的列表数据发生变更时,就需要调用此方法来更新UI。然而,这个方法并不“节能”,它会同时刷新列表中的所有i

2021-06-23 16:01:13 1091

原创 Android 实现TextView第一行嵌入图片

效果代码<?xml version="1.0" encoding="utf-8"?><layout> <data> </data> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.an

2021-04-08 14:13:42 1185 1

原创 动态修改 Retrofit 的url

这里采用的是反射的方式步骤一:通过反射直接修改baseUrl步骤二:情况缓存的数据(Retrofit会把之前调用过的接口的一些信息通过一个Map对象缓存起来) @Singleton @Provides fun provideApiService(retrofit: Retrofit): ApiService { return retrofit.create(ApiService::class.java) } @Singleton @Pro

2021-04-06 16:53:44 1407

转载 android 混淆 minifyEnabled proguard-rules.pro consumer-rules.pro

名词解释minifyEnabled 是否启动混淆 ture:打开 false:关闭proguard-rules.pro 文件是给Library模块自己使用的混淆规则consumer-rules.pro文件则是会合并到app的混淆规则中,是给包括app在内的其他模块调用时使用的混淆规则应用场景我们自己新建一个Library给主工程引用引入三方Library给项目主工程引用这种情况下,一般我们需要对Library中的代码配置一些混淆规则,以免打混淆包某些方法不生效而无法使用。一、在APP模块

2021-03-17 13:53:53 6053 1

原创 Dagger2 通过构造函数初始化异常

今天修改完代码后一编译就报错,Dagger编译不过。最终定位到构造函数加了抛出异常导致的,代码如下: @Inject public Detection(AppExecutors appExecutors) throws IllegalAccessException { this.appExecutors = appExecutors; boolean initSuccess = DetectionGpio.init(); if (!initSu

2020-11-25 15:37:00 233

原创 Room 数据库版本迁移后 Is the db closed?

记录一下,折腾了小半天。现象:数据库表增加一个字段,从而数据库版本从2迁移到3。第一次运行就提示数据库已关闭,重启后恢复正常。结果:当前room版本是1.1.0;更新到1.1.1后问题解决错误信息11-23 14:02:36.910 2809-2859/com.furlingtech.printer E/ROOM: Cannot run invalidation tracker. Is the db closed? java.lang.IllegalStateException: Can

2020-11-23 14:04:20 592

原创 List遍历for、foreach和iterator选择

结果ArrayList:for>iterator>foreachLinkedList:iterator>foreach>for原因1.foreach是用iterator来实现的,所以不展开说明。2.接下来分析一下ArrayList和LinkedList的数据结构上的区别。ArrayList是基于(index)的数组,在内存上是连续存储,所以获取指定数据的比较快,时间复杂度是O(1)。LinkedList是以链表形式存储的,每个元素都会存放下一个元素的节点坐标,所以用fo

2020-11-11 13:59:10 403

原创 Android 组件化

大类:1、各个模块的版本号统一管理,避免不同模块版本号冲突2、各模块加资源前缀限制3、公共类放入libcommon4、模块之间通信采用alibaba的ARouter主要使用技术:1、AndroidX2、Databinding3、LiveData+ViewModel4、Room5、Dagger26、Glide7、Okhttp+Retrofit28、ZXing9、Gson\FastJson编码规范:采用Alibaba Java Coding Guidelines plugin s

2020-10-16 14:50:41 146

原创 Android 自定义ProgressBar

package com.furlingtech.printer.utils;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import andr

2020-09-16 10:10:55 433

原创 Android 自定义View的属性使用Databing

在自定义View中,属性使用databing。1.自定义属性 <declare-styleable name="CustomProgressBar"> <attr name="android:progress"/> </declare-styleable>2.自定义控件中给该属性设置setpublic void setProgress(int progress) { mProgress = progress; postInv

2020-09-16 10:07:14 1305

原创 git-移除某个文件夹的版本控制

git rm -r -n --cached “app/build” //-n 表示预览需要删除版本控制的文件列表git rm -r --cached “app/build” //执行删除命令git commit -m “remove app/build” //提交git push origin master //提交到远程服务器主分支...

2020-07-24 09:07:11 1276

原创 AndroidStudio子线程无法debug调试

今天接手的一个老项目需要修改tcp接收的协议,之前是一次都没有跑过。跑起来后其他一切都正常,但调试tcp需要断点进入子线程,奇怪的就是无法进入。习惯性的百度、google,给出的解决方法几乎一直,如下设置好后记得需要重新编译一下,否则不生效。上面的方法对我却不生效,折腾了半天发现minifyEnabled设置为了true,修改为false就好了...

2020-07-15 14:37:01 2505

原创 ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_

ABIs [armeabi] are not supported for platform. Supported ABIs are [arm64-v8a, armeabi-v7a, x86, x86_64].)随着AndroidStudio版本的更新,自带的NDK版本也越来越高。NDK17及以后就不在支持ABIs[armeabi]。解决方案是下载低版本的NDK...

2020-04-29 15:38:31 444

原创 Android内部和外部存储解析

Android的开发离不开数据的存储,然后在之前的开发中一直没有搞清楚,是应该要好好梳理梳理了。以下引用来自对官方文档的理解安卓手机的存储分为 2 部分,内部存储 ( Internal ) 和外部存储( External )内部存储指的是系统存储空间,需要root权限才能访问,像SharedPreferenced和...

2019-09-26 19:33:41 645

原创 Android手机隐藏底部导航栏

先要条件:已具有root权限所需工具类public class ShellCommand { private final static String COMMAND_SU = "su"; private final static String COMMAND_SH = "sh"; private final static String COMMAND_EXIT = "...

2019-09-25 14:48:09 3933 1

原创 接口多格式数据解析

前因:由于项目功能的增加,所需要接人的后台接口也不只一个,返回格式的差异化也不可避免。思路:接口返回时我们所必须的值分别是Http status code、HTTP status message or null if unknown、和body。当我们在接收数据时先把数据转换为JsonObject,然后在CallAdapterFactory中转换为指定格式new Retrofit.Builde...

2019-09-25 14:36:05 407

转载 OkHttp拦截器的一些骚操作

1.URL重定向2.请求体数据加密3.HEAD动态添加4.请求日志抓取URL重定向如何重定向,说白了就是更换个新的网址,但是一般服务端做比较好,客户端就显得有些鸡肋。但是这个东西日常也会有用到,比如一些场景,测试生成环境的切换。业务多了,几个人混合开发的后台,每个人的代码不同意导致了baseURL时还不同,这时候可以通过一个入口来修改就行,不然每个地方都去修改,接口量大的话会很麻烦。自...

2019-08-16 17:06:01 803

原创 LivaData所遇到的一些问题

LiveData<ApiResult<ModelPicture>> apiRequest = apiService.getModelPicture();MediatorLiveData<Bitmap> livedata = new MediatorLiveData<>()livedata.addSource(apiRequest,modelPic...

2019-07-23 16:19:38 358

原创 Node.js 命令

启动服务forever start -a server.js停止服务forever stop server.js

2019-07-18 17:31:09 175

原创 自定义控件:Preview无法预览

做一下记录当自定义的View继承已有布局时,可以通过clear,然后在Preview中点击build就可以显示public class CustomProgressbar extends RelativeLayout {}但是自定义View继承View时还是无法显示,待解决...

2019-07-04 10:00:49 1275

原创 打成系统包时遇到的异常

1、新的apk提示升级失败原因:新apk中缺少android:sharedUserId=“android.uid.system”2.提示数据库已变更,但版本号未改变异常原因:当数据库变更的时候需要增加版本号,并配置如下代码 public static final Migration MIGRATION_1_2 = new Migration(1, 2) { @Over...

2019-06-26 15:10:43 504

原创 SDK中跨进程通信的4种方式

1、SDK中跨进程通信的4种方式1)Intent:通过隐式调用实现跨进程通信Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);startactvity(intent);

2019-05-08 13:21:01 1218

原创 Android中allowBackup的作用

在谷歌 2010 年发布 Android 2.2 Froyo (冻酸奶)系统中,谷歌引入一个了系统备份的功能,允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用。 第三方应用开发者需要在应用的 AndroidManifest.xml 文件中配置 allowBackup 标志(默认为 true)来设置应用数据是否能能够被备份或恢复。当这个标志被设置为true时应用程序数据可以在手机未获取 ROOT 的情况下通过adb调试工具来备份和恢复,这就允许恶意攻击者在接触用

2019-03-20 14:24:00 1483

原创 FragmentTabHost+ViewPager可滑动菜单栏

前言Android开发中使用底部菜单栏的频次非常高,主要的实现手段有以下:TabWidget隐藏TabWidget,使用RadioGroup和RadioButtonFragmentTabHost5.0以后的TabLayout最近推出的 Bottom navigation在这我选择的是FragmentTabHost+ViewPager总体设计思路FragmentTabHost...

2019-03-19 12:23:55 403

ffmpeg.zip

ffmpeg3.2版本,在Ubuntu下交叉编译完成arm版本 ,亲测可用

2019-06-12

空空如也

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

TA关注的人

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