![](https://img-blog.csdnimg.cn/20200302230700893.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android进阶
文章平均质量分 52
Android技术升级与探知
吕氏春秋i
月亮是头顶上的理想,现实是脚下的六便士。
展开
-
android MMKV数据持久化缓存集合
最近在使用mmkv缓存的时候 发现没有集合缓存非常不方便 自己写一个方法。原创 2024-03-13 15:38:20 · 714 阅读 · 0 评论 -
android 网络拦截器统一处理请求参数和返回值加解密实现
项目中遇到参数加密和返回结果加密的业务这里写一下实现 一来加深记忆 二来为以后参考铺垫。原创 2024-02-02 17:20:52 · 965 阅读 · 0 评论 -
android bitmap保存本地背景是黑色背景什么都看不清的问题 解决方法
最近在项目种有个电子签名功能 需要客户手写签名 然后保存本地 上传云端//获取bitmap压缩为JPEG格式saveImageToGallery 方法我做了修改 之前用的压缩为WEBP无损格式核心修改内容就是修改bitmap的压缩图像的格式查看源码可以看到CompressFormat 枚举类/*** 压缩为JPEG格式* 压缩到最小尺寸*/JPEG (0),/***压缩为PNG格式。*/PNG (1),/***压缩为WEBP格式。原创 2023-12-11 18:44:46 · 433 阅读 · 0 评论 -
Android Ble与终端设备进行大量数据交互时(如终端升级)发送中状态断开问题
最近在研究低功耗蓝牙的项目需求是把设备通过蓝牙传输文件升级。原创 2023-07-20 17:11:48 · 942 阅读 · 2 评论 -
Android RSA和AES对称加密工具
最近开发 用到数据加密 研究后要用RSA和AES对称加密工具以前没搞过 记录一下心酸过程。原创 2023-06-21 16:30:07 · 1211 阅读 · 0 评论 -
android adb工具命令大全
android adb 指令大全原创 2022-08-18 17:26:18 · 3955 阅读 · 0 评论 -
Android moveTaskToBack方法测试
加入启动一个activity后执行 moveTaskToBack 会发生什么?原创 2022-08-16 10:55:34 · 1775 阅读 · 0 评论 -
android 适配7.0以上,FileProvider配置
android 适配7.0以上FileProvider的配置原创 2021-05-26 16:40:37 · 1309 阅读 · 0 评论 -
android 通过adb shell 命令获取最大打开文件数和当前打开文件数及串口使用率
android 通过adb shell 命令获取最大打开文件数和当前打开文件数及串口使用率!原创 2022-08-02 14:07:54 · 1546 阅读 · 0 评论 -
Android 轻松实现 点击WebView链接中的图片同比例放大,长按保存本地
Android 点击WebView链接中的图片同比例放大,长按保存本地原创 2022-05-03 10:36:59 · 1300 阅读 · 2 评论 -
Android通过模拟按键之Instrumentation向JS输入框赋值
android串口拿到扫码器的结果后 通过键盘模拟点击直接往js的输入框内赋值,android串口拿到扫码器的结果后 通过键盘模拟点击直接往js的输入框内赋值,原创 2022-04-27 20:52:59 · 2218 阅读 · 0 评论 -
Android 通过串口获取设备号 android串口测试工具 完整解析
Android 通过串口获取设备号 android串口测试工具 完整解析原创 2022-04-25 14:10:54 · 2801 阅读 · 2 评论 -
Android Studio 无线adb连接设备 直接跑程序
Android studio 无线adb连接设备原创 2022-04-22 15:15:08 · 1161 阅读 · 0 评论 -
Android工业平板RK3288 3399系列设置 [APP为主屏幕应用]
前言android工业平板 跑应用一般都不得退出app也就是常驻应用如何设置在 AndroidManifest.xml 内 主入口 Activity 的 intent-filter 标签内添加<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" />原创 2021-11-24 10:31:39 · 988 阅读 · 0 评论 -
如何在android中禁用webView的长按点击事件
前言我们都知道在网页里长按会弹出一些 没用选项如何禁止掉呢?要禁用长时间单击,您需要首先启用长时间单击设置LongClickable(true);然后,setOnLongClickListener,不返回任何内容:webview.setLongClickable(true);webview.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v)原创 2021-11-12 15:03:07 · 3559 阅读 · 2 评论 -
Android Couldn‘t find meta-data for provider with authority
前言如题Android java.lang.IllegalArgumentException: Couldn’t find meta-data for provider with authority 你的包名说明你没有配置 provider 或者配置了 没有配置对我就是配置了 没有配置对参考一下 配置 <provider android:name="androidx.core.content.FileProvider" android:a原创 2021-11-05 17:45:22 · 4605 阅读 · 0 评论 -
25000字总结Android优秀的第三方框架、各种学习资料汇集 二 Camera、Video、指纹、聊天IM、投屏等等
第三方工具工具类AndroidUtilCode安卓工具库RxTool工具类集合logger漂亮的log打印工具libphonenumber全球手机号验证工具packer-ng-plugin多渠道打包依赖注入kotlin中的依赖注入替换dagger2dagger是Java常用的依赖注入框架Koin是一款轻量级的依赖注入框架,根据官方的描述,它无代理,无代码生成,无反射。rx系列/包含时间通知RxJavaRxAndroidRxLifecycleRxLifecycleRx原创 2020-06-03 21:44:08 · 2491 阅读 · 3 评论 -
Android 自定义ImageView实现圆角图片
圆角ImageView大概就是这个样子的 四个直角改成圆角的 度数可以自定义自定义ImageView方法一:BitmapShader方式首先简单了解下BitmapShaderBitmapShader是Shader的子类Shader在三维软件中我们称之为着色器通俗的理解,Shader的作用是给图像着色或者上色BitmapShader允许我们载入一张图片来给图像着色所以其实根据上面对于BitmapShader的描述其实就可以对圆角ImageView有一定的思路了吧画一个圆角矩形,然后把本原创 2020-07-29 21:23:02 · 1605 阅读 · 1 评论 -
Android 点击屏幕空白处隐藏软键盘
前言最近在重构老项目 把之前的拍照功能也搬过来了在输入打卡号的时候 软键盘一直在打开着 点签到按钮 很麻烦所以想实现 点击屏幕空白处隐藏软键盘!!封装工具据传入控件的坐标和用户的焦点坐标,判断是否隐藏键盘,如果点击的位置在控件内,则不隐藏键盘 /** * 根据传入控件的坐标和用户的焦点坐标,判断是否隐藏键盘,如果点击的位置在控件内,则不隐藏键盘 * * @param view 控件view * @param event 焦点位置 * @re原创 2021-10-30 17:10:14 · 1683 阅读 · 1 评论 -
android与H5数据交互(kotlin)
前言最近老项目重构 纯原生项目换成了原生+h5 混合开发所有的功能基本都由H5做了 android这边只负责调用硬件设备拿到硬件返回的数据 再返回H5 交由他来加载显示主要方法有2个一是H5输入内容传给android android接受到保存数据库这样做的好处是 即使重新加载H5 数据还是有的 不会丢失重要信息另一个方法就是H5调用android的方法 由android返回数据给H5显示效果图Html代码直接全部copy html的代码 然后新建一个.hmtl 文件 名字无所原创 2021-10-30 11:52:50 · 1775 阅读 · 1 评论 -
Android 直连MySQL数据库实现增删改查
前言最近在重构老项目 在原来的基础上加了mysql数据库的使用 主要是为了记录一些重要数据!第一次使用记得还是三四年前 现在很久没操作了 先写个demo练习一下这里记录一下流程和使用方法!效果图导入mysql-connector-java-5.1.30-bin.jar包mysql-connector-java-5.1.30-bin.jar包 CSDN下载地址将jar下载后,在新建的demo项目app/src/main 目录下 创建libs文件夹,将jar包复制到该文件夹下,然后右键选择 A原创 2021-10-28 11:17:47 · 4201 阅读 · 8 评论 -
MySQL中PreparedStatement设置datetime、setData的值精确到时分秒
前言插入数据库有个Date字段 是记录插入时的具体时间然后插入后发现该字段没用时分秒create_time的值如下id='1', name='name', type='1', status='content', content='2', create_time='2021-10-27'这样肯定是不行的 如果到时候按照时间排序 查看数据 就没办法做了所以要记录到秒如何实现呢PreparedStatement这个类的setDate方法 明确要求 是用到sql包下的Date类java.sql.原创 2021-10-28 09:29:13 · 1526 阅读 · 1 评论 -
Android 轻量级数据库 Hawk
前言介绍Hawk 是一个很便捷的数据库 . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 .官方地址github ---------HawkHawk 是一个简单的 key-value 数据库Hawk用的是: AES 加密能选择使用SharedPreferences 或者 SQLite、Gson解析Hawk 提供: 安全数据持久化、能存储不论什么类型依赖地址dependencies { implementation 'com.github.orhanobut:hawk:原创 2021-10-22 17:13:48 · 1009 阅读 · 0 评论 -
Android Jetpack组件之Room数据库使用
前言android jetpack发布已经很久了 可能自己年龄大了 学习慢了很多最近项目有用到数据库 所以想学习一下room 之前一直用的郭神的litepalroom是基于sqlite封装的 相比sqlite肯定是方便使用!google中国文档社区 关于room的说明 依赖什么的这里就不说了 主要是 整个架构和流程 说明一下项目结构1.Export 实体类Export :创建实体类ExportBean,实体类名可作为查询时用的表名。/** * Author by Lyu *原创 2021-10-19 19:46:29 · 507 阅读 · 0 评论 -
Android Jetpack Room组件的使用无法查看到数据库表结构原因
前言最近有个功能需求 要求使用数据库保存本地数据之前一直没有使用过room 想尝试一下 可谓一波三折 一个bug卡了一天!生成的.db文件打开后是一片空白利用android studio 查看room生成的.db文件 一片空白几番调试 还是不行 研究了一下午 心态爆炸解决方法原来room的数据生成文件是三个 要三个一起才可以打开db文件 预览数据库右键点击保存到文件夹最后是这样子的最后用SQlite编译器打开看数据格式这个sqlite工具我找了半天才找到在这里发出来地址原创 2021-10-19 19:17:04 · 1202 阅读 · 4 评论 -
Android 图片上传之字符串加解密BASE64Encoder
前言最近项目中有个需求是打卡签到功能要求:人脸拍照 上传服务器这个功能之前使用@Multipart使用标签@PartMapAndroid上传头像或上传文件之Retrofit2 使用@Multipart使用标签@PartMap过程这次在项目中使用这个方法的时候 因为还要添加其他的参数 后台那边一直接受不到数据所以就换了一种上传思路图片上传之字符串加解密BASE64Encoder在上传图片之前先把图片的路径拿到 例如/storage/emulated/0/Documents/Pic_1631原创 2021-09-08 16:07:01 · 592 阅读 · 0 评论 -
2021-Android 面试问题总结分享(不一定会被问到 能掌握最好)
前言博主 分享有关 android 面试容易被问到的问题从上到下 一个一个去回答 可以检测自己的实力水平也可以学习补不足! 共勉1.Android相关的知识1.Activity1.Activity的启动流程2.onSaveInstanceState(),onRestoreInstanceState的掉用时机3.activity的启动模式和使用场景4.Activity A跳转Activity B,再按返回键,生命周期执行的顺序5.横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透原创 2021-08-31 11:06:05 · 572 阅读 · 0 评论 -
解决Android Handler的handleMessage()方法内TextView.setText偶尔不执行的问题
前言最近项目中要加一个体温测量的外设模块 利用android的串口通信 可以完美的取到测量的体温数据获取到数据后,在用Handler发送数据到View渲染时 发现一个问题 就是数据能测量到 但是渲染到TextView时有时无!android串口通信CH340转USB android串口通信CH340转USB(可参考)handleMessage在使用Handler通信时,handleMessage()这个方法内渲染TextView数据 偶尔会丢失数据渲染这个问题出发,寻找解决方案:看到这样一个原创 2021-08-14 11:19:46 · 2444 阅读 · 6 评论 -
Android 点击PopupWindow以外的区域点击事件失效的解决方法
前言最近在写外卖取货的功能 自定义了一个9宫格数字键盘是以PopupWindow实现 点击输入在屏幕底部弹出一个自定义软键盘在点击的时候遇到一个问题每次输入完取货码 还要再点一次取消PopupWindow的方法才可以走接口查了一下API 可以从官方的注释看得出解释:解决方法如果你想设置PopupWindow 遮罩层只有控件设置的大小 点击控件以外的按钮 不会影响可以设置 PopupWindow mPop = new PopupWindow(); //设置此参数失去焦点,这样原创 2021-08-13 15:22:35 · 1481 阅读 · 0 评论 -
Android 驱动CH340实现和单片机串口通信
前言最近项目中需要加一个体温检测的模块 需要用到android的串口通信知识点遇到的问题之前没有深入了解过 串口通信 在查询知识点的时候 查到了google的demoGoogle公司在2011年开源的Google官方源代码说实话 研究google这个demo 很简单没有什么难度 但是我遇到一个问题在向串口发送指令后 却收不到串口返回的数据 这个问题我百思不得其解一直查资料 查到一个和我遇到一样问题的Android与单片机通过串口通信,收不到返回数据看到这个答案时 内心是多么的激动 但是原创 2021-08-06 22:31:07 · 4279 阅读 · 16 评论 -
android 串口通信 No implementation found for java.io.FileDescriptor解决方法
前言最近调试android串口通信在调试android官方demo的时候 报错了报错内容为:No implementation found for java.io.FileDescriptor com.example.mydemo.serial.SerialPort.open(java.lang.String, int, int)(tried Java_com_example_mydemo_serial_SerialPort_open and Java_com_example_mydemo_s原创 2021-08-05 18:42:41 · 3439 阅读 · 4 评论 -
Android通过包名启动APP
前言之前在做自动打卡脚本的时候每天打2次卡 再打第一次卡的时候 停留在钉钉或者企业微信页面太久了即使第二次打卡跳转到 钉钉或者企业微信 也执行不了自动打卡所以在打完第一次卡以后 我们要再次回到自己的app这样就可以循环往复了那么就有一个问题 在别人的app 如何自动回到自己的app这里用到了广播和服务在定时里通过调用包名 启动自己的app public static void launchApp(Context context, String packageName) {原创 2021-07-27 17:59:27 · 2315 阅读 · 1 评论 -
Android Service前台服务 StartForeground
前言前面写了一个脚本 来执行自动打卡 效果还不错又学习了一些android的体系知识点其中就用到了前台服务 利用播放器的模式 来消除被杀的可能提高Service的优先级如何保活Service1. 提高Service的优先级:为防止Service被系统回收,可以尝试通过提高服务的优先级解决,1000是最高优先级,数字越小,优先级越低android:priority=“1000”2.把service写成系统服务在Manifest.xml文件中设置persistent属性为true,则原创 2021-07-23 17:36:25 · 3615 阅读 · 0 评论 -
Android 实现企业微信自动打卡任务同时支持钉钉急速打卡模式
前言之前公司一直是弹性工作制 以工作任务为目标 自由上下班日子过的不亦乐乎自从人事来了以后 就颁布了第一条法令看到这个无疑的痛苦的 对于一个几年没有打卡散人来说!!!同时公司的财务小姐姐和其他同事也硬邀 工程师来开发一个脚本任务 来执行自动打卡听起来好像还不错为了大家的福利 说干就撸起袖子准备工作要先完成app之间的跳转首先先拿到企业微信的包名和钉钉的包名这个无论你是adb命令实现 还是百度直接找 都很方便ADB命令方式依旧数据线连接手机,注意都是调试模式哈,不然电脑无权原创 2021-07-21 22:38:52 · 6992 阅读 · 17 评论 -
Android 重新认识PendingIntent
前言最近一直在写一个脚步 是关于自动打卡微信和钉钉的在翻阅资料的时候 看到了PendingIntent 眼前一亮亮的原因是:既熟悉又陌生PendingIntent在学习android的时候 多多少少都有了解一下 但是日常开发中用的真的不多见!趁着这次机会顺便学习一下具体用法 加深记忆看字面意思 它就是一个intent 日常开发离不开的一个词汇 再熟悉不过了intent:说明某种意图,携带一种行为和相应的数据,发送到目标组件通过它,Android 系统的四大组件能够方便的通信,并且保证解耦原创 2021-07-21 16:35:27 · 344 阅读 · 0 评论 -
Android Glide图片加载-缓存机制(内存缓存和磁盘缓存)
前言glide的缓存机制。Glide的缓存设计是非常的先进的,考虑的场景也很周全。Glide 的缓存分为两种,一是内存缓存,另一个是硬盘缓存。这两种缓存的作用各不相同,内存缓存的主要作用是防止应用重复将图片数据读取到内存当中,而硬盘缓存的主要作用是防止应用重复从网络或其他地方重复下载和读取数据。内存缓存在默认情况下,Glide自动开启内存缓存的,我们也可以通过调用skipMemoryCache(true) 方法,禁用内存缓存RequestOptions options = new RequestO原创 2021-07-14 10:50:14 · 5616 阅读 · 1 评论 -
Android 多级树形结构列表实现效果
效果Android 多级树形结构列表实现效果实现代码 ListViewTreeListViewAdapterpublic abstract class TreeListViewAdapter extends BaseAdapter { protected Context mContext; /** * 默认不展开 */ private int defaultExpandLevel = 0; /** * 展开与关闭的图片原创 2021-07-12 17:35:48 · 982 阅读 · 0 评论 -
Android使用WebView加载Url时提示“请在微信客户端打开链接”
前言最近在使用webView加载一个url时提示弹出这样的图片解决方法在设置webView属性的时候 修改ua参数我们通过这个链接拿到自己的ua参数点击获取自己的UA参数如图所示我用的红色表框的ua复制以后 设置在webView中代码参考 String ua = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36";原创 2021-06-29 17:01:51 · 1687 阅读 · 1 评论 -
Android RecyclerView点击展开、折叠效果的实现方式
实现效果思路我使用的是第三方适配器BaseRecyclerViewAdapterHelper但是遇到一个问题这个适配器2.0和3.0不兼容 而2.0版本 没有折叠效果这个组件 我用3.0版本 gradle一直依赖不了怎么办?只能寻找其他方法来实现 我想到的是在用两层 RecyclerView的办法在第一次的item布局里嵌套第二次RecyclerView觉得可行 就开始写代码 最终结果还可以优化 就是上面的样子 实现了点击折叠和展开的效果代码代码实现比较简单唯一要说的就是通过一个原创 2021-06-23 13:24:34 · 3087 阅读 · 4 评论 -
Android 模块化开发 ARouter序列化bean或传值失败为Null的问题
前言跨组件通信 一般使用阿里的路由ARouter最近在跨组件传递数据的时候 接收到路由的值为null百思不得其解最后解决方案竟然是没有初始化解决过程在发送的地方 String json ="这是我传的数据"; ARouter.getInstance() .build("/shopping/shopping_pay") .withString("json", json) .navigation();在原创 2021-06-17 14:19:33 · 804 阅读 · 0 评论