自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 资源 (3)
  • 收藏
  • 关注

原创 kotlin协程的详细介绍和六种启动方式与挂起函数原理

(1)协程与线程的关系:协程是轻量级线程可以说,协程不是线程,而是一个特殊的函数,这个函数可以在某个地方挂起,并且可以恢复继续运行。所以说,协程和线程相比并不是一个维度的概念。函数调用当然比线程切换轻量;而封装成类线程的API后,它形似线程(可手动启动、有各种运行状态、能够协作工作、能够并发执行)。协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。协程比线程更高效,可以挂起和恢复而不会产生上下文切换的开销;

2023-07-02 12:34:20 2472 1

原创 git设置用户名、密码和邮箱(全局设置)

注意:git config --list退出的问题,如果你的配置信息实在是太多了,可能会出现这种情况(如下图一),要等一会才能退出来,如果我们不想等待,想退出命令行怎么办?我们可以输入英文q来退出(如下图二)。

2023-06-02 22:23:36 7707

原创 remote: Support for password authentication was removed on August 13, 2021

项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。随机:令牌不需要记住或定期输入的更简单密码可能会受到的字典类型或蛮力尝试的影响。唯一: 令牌特定于 GitHub,可以按使用或按设备生成。可撤销:可以随时单独撤销令牌,而无需更新未受影响的凭据。有限 : 令牌可以缩小范围以仅允许用例所需的访问。如对此有疑问,请联系qq1164688204。

2023-06-02 21:53:40 463

原创 Android 项目调用第三方库so动态库

在Android NDK开发中,可以通过自己编写C/C++代码来构建so动态库进行调用之外,还可以把so动态库提供给第三方使用;接下来,我将介绍在新创建的Android 项目(或已存在的Android 项目)中如何调用第三方so动态库。关于如何进行NDK开发,实现JNI,以及编写C++与Java交互(Java调用本地函数)并编译出本地so动态库,请查看。

2023-06-01 22:39:26 7425 2

原创 Android 多任务窗口中的界面高斯模糊处理问题

应用开发过程中安全问题的确需要系统考虑也要开发者自己多考虑,一个小的细节可能会让你的应用变的更安全,最近在用招商银行App的时候无意中发现了iPhone上多任务窗口,看到招商银行的应用有一个特别的地方就是当应用出现在多任务中的时候界面被高斯模糊处理了,也就是看不到界面内容了(如下图一),你看后面的今日头条还是可以看到内容的,为什么看不到这个应该都知道为了安全嘛。先说结论,就目前而言,iOS实现了系统级的可对后台任务列表中的App预览界面进行高斯模糊处理;Android目前假如我们想让应用安全点就是不要在多任

2023-05-30 21:25:13 3552

原创 Android 解决APP启动时出现白屏问题

⑤对于通过点击应用程序图标来启动Activity的情景来说,ActivityManagerService在这一步中,会调用startProcessLocked来创建一个新的进程,而对于通过在Activity内部调用startActivity来启动新的Activity来说,这一步是不需要执行的,因为新的Activity就在原来的Activity所在的进程中进行启动;(1)冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。

2023-05-30 20:16:30 1422

原创 Android kotlin和java切分字符串String.split()转义符的坑

就可以获取到arr = {"aa", "bb", "cc"}但是这些字符在kotlin中不需要转义。不需要对特殊符号进行转义。

2023-05-30 19:55:40 418

原创 RecyclerView有数据但没有显示(多种情况都有分析)

layout_height使用了wrap_content,应该改成match_parent。7.Android RecyclerView 相互嵌套内层RecyclerView显示不全的问题,解决方案请看。

2023-05-30 19:39:05 2653

原创 push to origin/dev was rejected

在使用IDEA/Android Studio提交代码到git时,报错信息:push to origin/dev was rejected。这个问题遇到过几次,偶发性的,某次(很多次pull中的某一次)pull远程分支的时候,就会报这个问题。

2023-05-30 17:34:00 903

原创 java.lang.NoSuchFieldError: No static field xxxx of type I in class Lcom/app/live/R$id; or its supe

当主模块app依赖模块module_square时,module_square中有layout文件activity_jsbridge.xml,而与此同时app模块也含有layout文件activity_jsbridge.xml,app的layout文件activity_jsbridge.xml就会覆盖module_square的layout文件activity_jsbridge.xml。而实际运行则是app的layout文件activity_jsbridge.xml,所以定位起来会很懵逼。

2023-05-30 17:28:01 475

原创 Duplicate class com.xxx.xxx found in modules 问题解决

Android Studio 出现这种问题的原因就是依赖的包版本不一样,产生了冲突。

2023-05-30 16:44:48 3201

原创 如何分析ANR日志(记录一次我遇到的ANR)

公司的App一直是混淆后再上线,一直没问题,前段时间他们拉了一个Android 13分支,升级了Android项目版本从api 28(Android 9)升级Android api 33(Android 13),加了百度地图的混淆的代码之后,打混淆后的release包后(不混淆的release包没问题),在一些手机上(Redmi Note 7 Android 10系统、小米8 Android 10系统)每次首次运行App就会ANR,后来这个问题交由我来看一下。1.定位问题(1)首先把ANR日志导出来。

2023-05-30 01:14:21 1114 1

原创 Android 实现沉浸式状态栏(包含顶部栏吸顶Layout CoordinatorLayout实现沉浸式状态栏)

Android状态栏默认是固定的黑底白字,这肯定是不被伟大的设计师所喜爱的,更有甚者,某些时候设计希望内容能够延伸到状态栏上部(例如顶部是大图的情况)。参数二:沉浸状态栏的颜色),这样就实现了CoordinatorLayout的沉浸式状态栏,如以下视频(这里的沉浸状态栏的颜色设置的完全透明,上滑的时候会渐变至纯白色)。在项目的build.gradle下的repositories添加(新版本Android Studio创建的项目是在settings.gradle下的repositories),并同步项目。

2023-05-29 15:59:51 6747 2

原创 Android 使用sqlcipher加密和解密数据库(包括加密和解密已有的数据库,还有如何查看数据库教程)

我们知道Android系统有一个内嵌的SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作,SQLite是一个轻量级的、跨平台的、开源的嵌入式数据库引擎,也是一个关系型的的使用SQL语句的数据库引擎,读写效率高、资源消耗总量少、延迟时间少,使其成为移动平台数据库的最佳解决方案(如Android、iOS)

2023-05-29 12:13:54 3205

原创 使用JSBridge框架来实现Android与H5(JS)交互

在开发中,为了追求开发的效率以及移植的便利性,一些展示性强的页面我们会偏向于使用h5来完成,功能性强的页面我们会偏向于使用native来完成,而一旦使用了h5,为了在h5中尽可能的得到native的体验,我们native层需要暴露一些方法给js调用,比如,弹Toast提醒,弹Dialog,分享等等,有时候甚至把h5的网络请求放到native去完成。JSBridge做得好的一个典型就是微信,微信给开发者提供了JS SDK,该SDK中暴露了很多微信native层的方法,比如支付,定位等。

2023-05-28 01:34:28 2799 1

原创 Room数据库的使用与升级(详细介绍了增删改查,关于查询,各种查询方式都有介绍)

Room是Google推出的数据库框架,是一个 ORM (Object Relational Mapping)对象关系映射数据库、其底层还是对SQLite的封装。使用ORM可以让开发者更加关注业务逻辑,而不是SQL 语句。在JavaWeb领域也有类似的ORM 数据库框架Hibernate、MyBatis等等。Android平台数据库框架在 Android 中常见的数据库框架:GreendaoRealmDBFlowLitePal。

2023-05-27 15:50:58 3191

原创 Android Studio 进行NDK开发,实现JNI,以及编写C++与Java交互(Java调用本地函数)并编译出本地so动态库

NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。就会生成两个文件这几个so文件,如下图一,然后就能正常获取到C++文件(也就是cpp文件)中的数据了,还可以把so动态库提供给第三方使用,具体方式详见。在android的JNI中,要先将相应的C/C++打包成so库,然后导入到lib文件夹中供java调用。(5)安卓中的so文件是什么?

2023-05-26 23:27:44 5722 1

原创 Mac 配置Java 环境变量

项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。(要注意的是,第一次配置之后可能不会立即生效,如果没生效,请先检查配置的是否正确,如配置正确,就先关机,然后再开机,然后就没问题了,如果还是不生效,就再配置一遍就没问题了)。项目地址:https://gitee.com/urasaki/RxJava2AndRetrofit2。

2023-05-26 21:52:11 3361

原创 Android CoordinatorLayout+AppBarLayout顶部栏吸顶效果的实现

CoordinatorLayout遵循Material 风格,包含在 support Library中,结合AppbarLayout, CollapsingToolbarLayout等 可 产生各种炫酷的折叠悬浮效果。作为最上层的View作为一个容器与一个或者多个子View进行交互常见结合体-AppBarLayout:它是继承与LinearLayout的,默认的方向是Vertical:appbarLayout的滑动flag:我们可以通过两种方法设置这个Flag:

2023-05-26 21:11:33 3198 2

原创 The application could not be installed: INSTALL_FAILED_NO_MATCHING_ABIS

如果使用模拟器,即使加入了, 'x86'之后,某些第三方sdk还是无法正常使用(比如高德地图的gps定位功能,因为模拟器无gps),所以对于一些重要的功能,如果有手机尽量使用手机来测试。

2022-10-12 15:51:01 2991 1

原创 Android Studio报错 Can not attach to current VM

导致的基调听云旧版本sdk,在新版本Android Studio上不能正常使用问题,在旧版本Android Studio(Android Studio 4.1.3及其以下版本)上不会出现问题,新版本Android Studio(小蜜蜂版本)就会出现这个问题。apply plugin: 'newlens'依赖代码暂时注释掉,然后同步,这样run到手机就不会报错,交付给测试的时候,解开注释,然后提交apply plugin: 'newlens'依赖代码,用第三方打包平台直接打包成apk文件,就可以了。

2022-10-12 14:08:56 1422

原创 IDEA(或Android Studio)推送(push)代码报错 unable to read askpass response from ‘C:\Users\Urasaki\AppData\Loc

推送给代码报错 unable to read askpass response from 'C:\Users\Urasaki\AppData\Local\Google\AndroidStudio2021.1\tmp\intellij-git-askpass-local.sh',具体报错见以下内容我用的码云(或github)推送代码,当我改了账户的密码后,推送代码一直失败,报错 unable to read askpass response from。有两个这个原因,以下原因也可能造成推送代码失败。

2022-09-27 18:02:31 5707 1

原创 Android TextView SpannableString多个字体大小不一致的情况下,设置字体垂直居中显示

4、在Activity中设置SpannableString多个字体大小不一致的情况下,设置字体垂直居中显示。5、效果如下(见下图一,图中红圈处的3这个字最大,而且这个字水平居中显示了)。2、res下的values文件夹下的strings.xml文件的资源字符串。3、TextView Style 管理类。1、我的TextView。

2022-09-26 17:54:03 1308

原创 cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。(解决方案的最全整理)

可是run到手机的时候,又出现了一些问题,问题是老版本的依赖(module下的dependencies标签下的依赖)与项目下的(注意是project下的,不是module下的)build.gradle的classpath 'com.android.tools.build:gradle:4.2.0'不兼容。2、修改项目下的(注意是project下的,不是module下的)build.gradle文件的配置项,把。如果别的依赖也不兼容的话,根据提示把别的不兼容的依赖也替换成新的就没问题了。

2022-09-26 16:12:55 31113 6

原创 Android和java 错误: 找不到符号符号: 方法 xx 位置: 类型为xx的变量

现在plugin官网上的plugin插件还是2020年的,有点旧了,可能不兼容新版本的lombok依赖的jar包,所以新加的功能的UserListBean和AddressBean实体类不要使用@Getter和@Setter注解了(只修改新加的功能lombok的相关注解造成的问题,不要动以前的功能),直接使用getter/setter方法,就没有问题了。lombok降级之后的lombok依赖版本是1.16.22。lombok降级之前的依赖版本是1.18.24。如果方案一没有解决你的问题,请看方案二。

2022-09-23 18:01:30 2075

原创 Android List与json的相互转换

2、写一个AddressBean实体类。1、fastjson框架导入。2、List转json。3、json转List。

2022-09-23 17:00:52 2093

原创 Android strings.xml空格占位符及其使用方法

2、在布局文件(xml文件)中的使用。(中文全角空格,就是一个中文宽度)(普通的英文半角空格但不换行)3、在java代码中的使用。(普通的英文半角空格)1、各种空格占位符。(四分之一中文宽度)

2022-09-23 16:28:48 4317

原创 Android 需要动态申请的权限和普通权限

可能会触及用户隐私,对设备安全性造成影响的权限,除了要在AndroidManifest.xml中申请,还需要在代码中进行动态权限申请(关于动态申请权限请查看博客。不会直接威胁到用户安全和隐私的权限,只要在AndroidManifest.xml中申请,系统会自动为用户进行授权。),让用户手动进行授权。

2022-09-05 11:09:20 4208 3

原创 No version of NDK matched the requested version xxx 问题解决

升级gradle来解决这个问题(20年2月-6月发行的Android Gradle plugin 3.6-4.1之间的版本,如果项目有依赖ndk,可能存在编译不通过问题,4.1.0-beta01已修复该bug),这就需要gradle和gradle plugin,二者之间还存在版本对应(如下图一和下图二),升级gradle成gradle-7.0.2-bin。进行下载,下载完成后,点击OK,然后再次运行代码就能解决这个问题了。后就能选择自己需要的版本了,本项目根据报错信息来看需要的是。的NDK,选中之后点击。

2022-09-05 00:19:45 973

原创 Android Studio 不自动提示问题解决

1.开启Android Studio 智能自动提示(如下图一,勾选红圈中的选项,点击OK)。2.关闭节电模式(去掉Power save Mode 前面的勾就行了)。

2022-09-04 23:58:10 7234 6

原创 android room androidx.room:room-compiler 依赖添加问题(read time out)

我找了很久,设置国内镜像代理并同步(没用)、设置阿里云镜像并同步(要先删除国内镜像代理,还是没用)、添加了各种maven库并同步(还是没用。而且一次sync+build就得花20分钟(之前用公司配的Think Pad笔记本超卡),真气。annotationProcessor "androidx.room:room-compiler:$room_version"会添加不了,出现read time out错误。Android Studio 就是这么气人,这种工具问题是恶心的,解决了也没什么成就感,徒增人厌。

2022-09-04 23:39:04 1021

原创 APK signature verification failed. 问题解决

V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。4.查看build.gradle文件是否进行了如下配置信息(如果有signingConfigs,请按照下图一配置signingConfigs和buildTypes,如下图一;只勾选V2签名,Android 7.0以下,安装完会显示未安装,7.0以上则使用了V2的方式验证。

2022-09-04 23:21:52 2992

原创 the android sdk location cannot be at the filesystem root. 问题解决

和.gradle文件夹(Mac系统的.android文件夹和.gradle文件夹在User文件夹下,是隐藏的,要先按快捷键command+shift+.使其显示出来,见下图一)。2.Android Studio 设置项Http Proxy 不要设置代理,如果设置了的话,请记得重置成No proxy(见下图一)。android studio 文件夹(由于我的电脑没有这个文件夹,所以就没有标识出来,如果有必须删除)1.删除User文件夹下的.android文件夹、3.然后要重启电脑。

2022-09-04 22:58:34 9211 1

原创 Android waiting for target device to come online 问题解决

先关掉你自己的模拟器,然后打开Device Manager(见下图一),找到你自己的模拟器,里面有一个选项Cold Boot Now(如下图二和下图三),点击一下,模拟器打开并提示一行信息,直接点击dismiss,然后重新运行app就可以打开模拟器进行调试了。这个问题是由Android 模拟器引起的,所以要到Device Manager解决。

2022-09-04 22:32:01 710

原创 Android Studio 无法安装apk到小米手机问题解决

以前开发都是用自己的samsung手机,打开开发者选项和usb调试,直接可以连上Android Studio,进行调试,后来我的samsung退伍了,换上了Apple,就无法使用了,用公司的小米手机打开开发者选项和usb调试,然后进行调试,将apk安装小米手机安装应用报错(Failed to establish session Error while Installing APKs)。首先要打开小米手机的开发者选项和usb调试,然后。,重启之后进行调试就可以了。

2022-09-04 22:21:48 2765

原创 Mac Git 如何设置ssh key

GitHub(或者GitLab之类的远程的Git仓库)通常会提供https和ssh两种操作方式给用户,https的方式每次认证都需要输入密码,而ssh的方式则需要在服务器上配置ssh key(ssh公钥),提供了ssh key后,远程仓库就可以自动使用ssh公钥来进行认证,而不需要输入密码了。

2022-09-04 16:59:36 3850 4

原创 Installation failed due to: ‘device offline‘ 问题解决

2.File->Invalidate Caches,然后选择Clear file system cache and Local History,然后点击按钮Invalidate and Restart,之后Android Studio 会重启,重启之后再run project,就可以了。然后重新run project,就可以了,如果还报这个错,请查看第二步。1.解决方案:Build->ReBuild Project。

2022-09-04 16:08:02 2783

原创 Mac Git下载和安装(解释了Git安装包无法直接安装问题)

执行以下操作(见下图一和下图二),然后会打开页面(见下图三),向上滑动一下会见到页面(见下图四),然后点击红圈处,一会就下载好了(名称是git-2.33.0-intel-universal-mavericks.dmg的应用)。按住control键之后,右键打开(见下图三),现在打开了(见下图四),点击继续(见下图五),然后点击安装(见下图六),输入密码点击安装(见下图七),安装完成(见下图八)1.首先下载Mac Git应用,打开Git官网。

2022-08-31 14:51:16 15602 1

原创 Android 图片的三级缓存

网络缓存, 不优先加载, 速度慢,浪费流量本地缓存, 次优先加载, 速度快内存缓存, 优先加载, 速度最快。

2022-08-26 17:12:15 412

原创 LifecycleOwner com.xx.MainActivity@28b4e79 is attempting to register while current state is RESUMED.

(在Activity创建的时候就要创建出来,不能等到使用的时候再创建,不然会报错LifecycleOwner com.xx.MainActivity@28b4e79 is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.)。这个registerForActivityResult方法要写在Activity的onCreate方法里。.

2022-08-26 16:17:16 1268

空空如也

空空如也

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

TA关注的人

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