![](https://img-blog.csdnimg.cn/20200810160826951.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android
文章平均质量分 74
主要以Android方面遇到的各类问题为主,从原因到解决方法进行讲解,也为自己学习提供备案和思路
玖流之辈
Android屌丝一枚
展开
-
Android Studio Dolphin logct日志台新版特性及老版本恢复
Android Studio 日志台相关官网介绍原创 2022-12-10 21:48:06 · 3781 阅读 · 1 评论 -
并发(锁)概要整理
锁能够有效的避免一些线程冲突,但为了解决各类问题情景我们也衍生出了各种类型的锁,比如自旋锁,互斥锁、递归锁等等,我们就Android中常用的几种锁来展开理理对应Android来说的一些线程并发问题。原创 2022-10-24 06:00:00 · 441 阅读 · 0 评论 -
Android用View实现球形旋转滚动效果(中秋篇)
月球表面进行旋转移动的效果原创 2022-09-04 23:20:28 · 1414 阅读 · 1 评论 -
关于谷歌health Connect库调用的摘要
Health Connect 是一个 Android API 和平台。它将来自多个设备和应用的数据整合到一个生态系统中。对于 Android 开发者来说,它提供了一个读取和写入用户健康与健身数据的接口。对于 Android 用户来说,它提供了一个位置来控制哪些应用对不同类型的数据具有读取和/或写入权限。Health Connect 还提供设备端存储空间。按上述代码集成后,便可快速根据自己需求进行调用测试,因国内设备暂时无法调用,所以未构建相关ui进行测试,仅是协助各位快速拿到核心代码和调用流程。原创 2022-09-02 23:30:02 · 1039 阅读 · 1 评论 -
Android视图手册之Service
Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响。此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。原创 2022-08-20 17:31:43 · 684 阅读 · 0 评论 -
Compose Canvas饼图效果绘制
利用触摸手势,以原图中心点作为基准,将每次移动的分量进行拆分,来判断该区间对于x分量和y分量应该采取加或减的增幅方式,举个例子,当处于饼图下方时(一半高度以下),移动方向为正时,其增幅为正,该方向为顺时针方向,所以角度可以增加,当处于饼图左侧时(一半宽度偏左),移动方向为下时,其增幅为负,该方向为逆时针方向,所以角度需要减少。因为饼图整体呈圆形,所以我们将所有数据合起来当一个圆,里面的每一块数据的占比,就是它的弧度,而对于弧度我们可以用Canvas中的drawArc可以来绘制器弧形。.........原创 2022-07-19 22:21:41 · 858 阅读 · 3 评论 -
Android视图手册之Broadcast广播
作为Android的四大组件之一的广播,是我们和系统交流的重要桥段,比如系统电量的变化,锁屏,日期变化,插上外部电源等等,都会让系统用广播的形式发出,当我们的应用需求需要去接收这些信息的时候就可以用广播来实现。除了和系统交流,我们也可以利用广播和其他应用,或自身进行交流,其本质是基于AMS(Activity Manager Service)来集中管理的消息传递方式。想要使用广播,我们首先需要先创建一个广播接收者,来处理接收到的广播信息和内容,如下只要继承android.content.BroadcastRe原创 2022-06-26 07:00:00 · 346 阅读 · 0 评论 -
Android视图手册之启动模式
关于启动模式的图文介绍原创 2022-06-18 23:15:42 · 372 阅读 · 0 评论 -
超简单 CameraX 人脸识别效果封装
在这里插入代码片原创 2022-06-06 22:39:21 · 1629 阅读 · 11 评论 -
ADB处理万能方案
ADB处理万能方案找不到adb操作设备预先操作,拔掉手机连接线,关闭Android Studio,手机助手等可能会启动adb进程的程序。1、最常见的方案就是先找到占用ADB的端口的程序,然后杀死重启服务。1)找到占用程序的端口(后面是ADB的端口号 默认5037) netstat -ano | findstr 5037可能会出现下列 如下4512 是进程的pidTCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 45122)根据显示的进程pid杀死进程task原创 2022-05-17 10:47:33 · 2689 阅读 · 3 评论 -
packagebname==null 问题解决
packagebname==null遇到 packagebname==null相关报错把项目引用的jdk版本修改一下就行了原创 2022-02-14 20:38:25 · 6122 阅读 · 0 评论 -
Apk反编译修改版本号&资源文件方案(基于AndroidKiller)
Apk反编译修改版本号&资源文件方案(基于AndroidKiller)图文操作版密钥配置修改版本号替换资源文件重新编译命令操作版(适用于exe无法打开的情况)前提条件解包APK命令修改版本号修改资源回编译命令签名命令签名验证报错原因签名失败找不到apk的异常AndroidKiller下载(0积分 积分已调成0 可免费下载)图文操作版1、解压文件解压文件,打开AndroidKiller.exe密钥配置2、下面就是进行签名密钥配置的一个过程,用来准备等待后续执行,配置好签名是为了后续编译打包原创 2022-01-15 19:24:09 · 6038 阅读 · 1 评论 -
Android recyclerview 无限循环居中并自动向下滚动
Android recyclerview 无限循环居中并自动向下滚动描述:这是一个基于recyclerview实现的 Android 无限循环滚动Demo,可自定义item。项目代码在最后面!!!!跳转到最后控件效果如下:此控件为Android 无限循环居中并可以自动向下滚动。实现功能:上下滚动无限循环(跳转回之前相似的postion)自动滚动利用flex可进行流式内容布局设计核心:主要的设计核心是依赖于recyclerview进行设计的,主要通过重写layoutmanager,A原创 2021-12-29 23:12:36 · 5014 阅读 · 0 评论 -
Android 中间滚轮选择器,可自定义中间控件(基于recyclerview实现)
Android 中间滚动选择器,可自定义中间控件(基于recyclerview实现)描述:这是一个 声纹进度播放效果的Demo。项目代码在最后面!!!!跳转到最后控件效果如下:此控为Android 中间滚动选择器,可进行滚轮选择。实现功能:返回滚轮View 和 是否处于中间的状态 可依此进行中间View的自定义可自定义滚轮数量可传入中间坐标背景 会适配到中间滚轮位置中间选择回调默认前后可放大和缩小为无限循环滚动(跳转回之前相似的postion)设计核心:主要的设计核心是依赖于原创 2021-12-26 00:06:18 · 3084 阅读 · 0 评论 -
超简单recyclerview 最后一行显示不全解决方案
超简单recyclerview 最后一行显示不全解决方案项目代码在最后面!!!!跳转到最后问题现象:在设置recyclerview的时候我们常常会遇到类似如下图片显示的情况,最后一个item总是显示一半?那么怎么快速解决呢?解决方案(仅修改adapter几行代码即可):基于item本身的容器,我们其实可以在默认再添加一个容器然后不显示即可,修改代码如下:修改处1 将本就不存在的item置为INVISION 顺便处理好你本身的item点击逻辑,避免干扰 @Override publ原创 2021-12-25 23:21:39 · 4235 阅读 · 2 评论 -
Android 音频进度播放View(原View升级版)
Android 音频进度播放View(原View升级版)描述:这是一个 声纹进度播放效果的Demo。项目代码在最后面!!!!跳转到最后控件效果如下:此控件是基于之前的控件View加入了音频控制内容和跟随播放音乐进度显示进度原仅控件文章可点击查看实现功能:声纹可随机显示也可固定可自定义加载前后两种颜色可选择传入音乐进行播放,音乐播放进度和点击控件可控制音乐暂停和播放设计核心:主要的设计核心是依赖于drawRoundRect方法进行声纹条形的绘制,通过MediaPlay添加音乐播放原创 2021-12-22 23:21:45 · 2330 阅读 · 0 评论 -
Android 声纹进度播放效果(自定义View)
Android 声纹进度播放效果(自定义View)原创 2021-12-19 17:19:46 · 2222 阅读 · 0 评论 -
Android 登录3D翻转动画效果
Android 登录3D翻转动画效果原创 2021-12-19 15:00:40 · 1661 阅读 · 0 评论 -
mmkv 原理解析
mmkv 原理解析本文通过对mmkv的原理,和源码分析,深入剖析mmkv的功能实现。mmkv是什么? 首先,在mmkv开源项目中对MMKV是这么描述的,MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。 由上我们可以大致总结一下mmkv的核心也是我们本文会着重介绍的知识和内容。,一、基于 mmap 内存映射 二、使用 protobuf 实现序原创 2021-10-06 23:37:21 · 4648 阅读 · 0 评论 -
Android 关于ApplicationInfo flags快速了解
关于ApplicationInfo flags快速了解 在Application中我们可以常常通过添加flags来标志一些属性和能力,比如android:protectionLevel="system"或android:protectionLevel="signatureOrSystem"就表示添加了FLAG_SYSTEM这个标志,表示属于系统级应用,当然,这个FLAG_SYSTEM依赖于签名检查或权限。flag的判断和使用 首先在Application中flages的默认值是0,而这些标志则用移原创 2021-09-20 17:21:26 · 4230 阅读 · 0 评论 -
Android 解决启动应用白屏方案综述
Android 解决白屏方案综述在启动Android应用的时候,很原创 2021-09-20 10:22:09 · 1310 阅读 · 0 评论 -
Android 裸眼3D效果View
Android 裸眼3D效果View描述:这是一个裸眼3D效果的控件View。Tips:本项目代码部分逻辑参考于其他文章,众人拾柴火焰高,希望大家能多多补充。项目代码在最后面!!!!跳转到最后控件效果如下:实现功能:实现三层图片叠加效果(裸眼3D效果)可设置每层图片移动速率可设置每层图片移动的限制度数可直接设置图片或引入图片设计核心:主要的设计核心是依赖于传感器对手机晃动的监听(重力感应监听器),对每层图片进行不同的移动,实现仿3D效果。核心代码:SensorLayout 用原创 2021-08-15 23:20:32 · 2221 阅读 · 5 评论 -
Android 网页加载问题
Android webView网页加载问题1、出现 ERR_CACHE_MISS 无法加载异常解决方案:在AndroidMainfest里添加网络权限:<uses-permission android:name="android.permission.INTERNET"></uses-permission>2、出现 ERR_NAME_NOT_RESOLVED无法加载异常出现这个问题可以检查以下几点:浏览器配置;请求的url地址;网络配置设置;(WiFi 或 数据原创 2021-08-08 18:23:57 · 1588 阅读 · 0 评论 -
Android VIew之图片缩放,移动
Android VIew之图片缩放,移动描述:这是一个可以放大,缩小图片的控件。Tips:本项目代码部分逻辑参考于其他文章,众人拾柴火焰高,希望大家能多多补充。项目代码在最后面!!!!跳转到最后控件效果如下:实现功能:双击图片进行缩放通过手势对图片进行缩放通过拖拽对图片进行拖移监听点击区域View缺陷:图片控制区域与View相关联仅对当张图片生效用法:导入图片的用法和Imageview一致,另外可添加EnlargeClickLister监听以下事件:void tou原创 2021-08-08 12:46:52 · 1343 阅读 · 0 评论 -
Android 高仿今日头条效果频道拖拽效果
仿今日头条效果package com.example.test.demochannel;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.os.Handler;import android.util.Log;import android.view.LayoutInflater;import android.vi原创 2021-07-27 00:01:37 · 1102 阅读 · 2 评论 -
多级树遍历和使用
多级树遍历和使用工具类参考:https://www.iteye.com/blog/ylq365-980627TreeNode.javapackage com.example.myapplication;import java.util.List;import java.util.ArrayList;import java.io.Serializable;public class TreeNode implements Serializable { private int paren原创 2021-07-15 23:17:45 · 296 阅读 · 0 评论 -
flutter 自定义菜单按钮展开部件View
实现效果原创 2021-07-03 20:56:14 · 1010 阅读 · 1 评论 -
Dart Null safety 快速理解
简介Dart语言在2.0引入空指针安全也就是Null safety,Null safety简单来说就是对空指针添加了安全界定,用我理解的话来说,之所以会有空指针安全被作为语法规则引入,以下面几点为主:代码开发更愉快,最近流行的Kotlin其中的一个优势就是其引入了Null Safely,这在代码开发上能避免很多错误,而作为Dart语言开发的主阵地flutter是以热重载(hot fix)为开发优势的,能够使开发者不重复进行代码编译,通过运行时就能进行开发工作,大大节省了代码开发时间,在Dart引入Nu原创 2021-07-01 17:42:35 · 1067 阅读 · 1 评论 -
flutter 去掉Appbar上面一部分内容
问题描述在使用appbar的时候不想添加上面的title,leading和actions,只想保留下面的bottom,Appbar结构如下原导航栏代码:DefaultTabController( //导航栏的长度 length: 3, child: Scaffold( appBar: AppBar( title: null, backgroundColor: Colors.red, cen原创 2021-06-29 16:33:02 · 1327 阅读 · 0 评论 -
flutter之自定义一个输入框的便签线条View
实现效果 在提供设计代码前,我还是习惯性地先将设计的效果图放入以便大家能快速参考是否是自己想要的,本文主要内容为便签内部的输入框和后面便签下划线效果的蒙版的设计和实现。 线条背景View 整体层次上主要采用Stack作为层叠结构,线条是我用Canvas进行绘制的,View的核心内容如下:必填:height:整个背景高度width:线长separateheight:每个相隔高度(一般是字符大小,如果字符有设行间距就是fontsize*height)可选:color:分割原创 2021-06-28 13:17:35 · 297 阅读 · 0 评论 -
flutter之item 时间轴设计
实现效果时间轴样式设计,本文具体实现内容为下图红色画框部分。item实现过程具体item实现元素为如下:1、时间轴:可以用Container或 VerticalDivider来画,因为这里想添加圆弧效果,用Container来描述: Container( alignment: Alignment.center, decoration: BoxDe原创 2021-06-25 11:29:49 · 438 阅读 · 0 评论 -
flutter学习之NULL问题解决
flutter学习之NULL问题解决在flutter实战的第二章计数器实例学习和应用的过程中遇到两个null问题,这是直接复用原来的代码产生的,应该是后续的flutter版本升级对相关调用类构造方法添加了空判断导致的。计数器实例代码import 'package:flutter/material.dart';class Study extends StatelessWidget { @override Widget build(BuildContext context) { ret原创 2021-06-12 16:41:39 · 6689 阅读 · 2 评论 -
简单View之列表item拖拽到区域删除
拖拽到区域删除效果图效果图如下为拖拽删除图,有需要可拷贝下面代码直接进行复用。本例实现包括长按切换item位置,删除item和显示删除区域。实现逻辑整体实现是基于ItemTouchHelper,通过复写itemTouch的长按拖拽,然后和删除区域进行位置比对,如果移动的item到达了需要删除的区域范围内,我们就将其进行删除,如果是到了其他item的位置就进行切换。这里借用了一个工具就是Itemtouchhelper,这个作为官方可以直接和recycler绑定的工具类,可以帮助我们拿到item的移原创 2021-05-06 19:56:50 · 388 阅读 · 0 评论 -
bindView注释代码转成findByViewId脚本
bindView注释代码转成findByViewId脚本 在接手代码的时候一般回遇到有用butterknife来绑定控件的习惯,butterknife确实是个非常方便的控件,但是在实际使用的时候还是会存在一部分问题,彻底避免自然是改回原来的控件绑定方式,但是一个个打太过麻烦,我这里就写了个绑定脚本,直接放到Java代码里运行就行。在线Java编译器:https://tool.lu/coderunner/注意:1、复制进去的化有绑定控件代码就行,其他非绑定控件代码会过滤掉。2、在线Java运行编译原创 2021-03-11 18:38:33 · 221 阅读 · 2 评论 -
Android 简单View之圆形波纹扩散
圆形波纹扩散效果图效果图如下为双圆波动图,有需要可拷贝下面代码直接进行复用。(为了更好的看到效果,我放了个绿色的背景在主布局,实际使用可以去掉)View代码package com.example.my;import android.animation.ValueAnimator;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import原创 2020-12-19 14:21:24 · 924 阅读 · 2 评论 -
Android 简单View之四色渐变甚至多色渐变方案
传统三色渐变如果我们单纯用Android自带的xml区做颜色渐变,最多只能做到三色渐变,比如下方的xml文件就最多做到三种颜色渐变的效果。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="90" android:endColo原创 2020-12-05 11:58:34 · 3810 阅读 · 0 评论 -
快速理解Token机制
快速理解Token机制什么是tokenApp在和后台进行通信服务的时候往往会借助于token,那么token的表示形式是什么,而token的作用又是什么呢?简单来说,token就是一种连接身份证明,往往由一串字符串表示,是和服务器进行通信的令牌。如果你的token不通过,那么就无法访问到后台服务器,相当于服务器的一道安全防线。只要拥有该服务器身份证的才是公民,不然都是黑户,不允许交易的哦。而且有了token,除了第一次需要传入身份信息,后续仅传入token即可,因为身份信息已经根据保持在服务器了,也保原创 2020-10-24 18:45:47 · 3204 阅读 · 0 评论 -
利用AndroidKiller进行反编译密钥替换,延长密钥签名
利用AndroidKiller进行反编译密钥替换,延长密钥签名首先简要介绍下AndroidKiller是一款超强的反编译软件,我们可以通过AndroidKiller进行一系列的反编译操作,比如直接修改AndroidManifest里面的一些基本配置信息(app名,配置权限等等),当然有Android编程经验的还可以利用Android和Unicode编码转换方式,在一定混淆的源码里甚至可以修改逻辑,比如很多老版的付费游戏代码的购买操作是在移动端进行成功是否的判断就给了很多人可趁之机。那么本篇文章也是对这款软原创 2020-10-16 10:15:11 · 1607 阅读 · 0 评论 -
Wifi请求权限和Action概要
Wifi请求权限概要关于WiFi请求中不同对应的功能,应该要申请哪些权限,在这篇文章中我进行了汇总,包括权限的请求,广播添加的action值,以及 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permi原创 2020-10-11 14:52:28 · 2434 阅读 · 4 评论 -
一个简单的apk完整性校验方法
一个简单的apk完整性校验方法,客户端打包校验思路来自我的上级老大哥,因为从网上的搜索发现,很多apk校验是需要基于服务器来提供一个SHA1的校验的,因为apk生成后这个值基本是单一的,也就是仅仅属于这个apk,那么我这里采用的方法就是利用我们打包加密时的key拿到SHA1,然后进行对这个key的SHA1的一个程序校验即可。首先你需要拿到key的SHA1拿到key的SHA1话不多说,上步骤;第一步、打开Android Studio的Terminal工具(不会有人连这个在哪都不知道吧,不会吧不会吧?)原创 2020-08-07 18:32:32 · 3761 阅读 · 2 评论