- 博客(307)
- 资源 (1)
- 收藏
- 关注
原创 Android Studio控制台中文乱码解决方案
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。在项目调试过程中,用华为手机调试控制台没任何问题,换了一台OPPO手机,控制台log中文乱码。之后关闭Android Studio重新打开,即可解决问题。第一步找到Edit Custom VM Options。之后在studio.vmoptions中加入。
2025-03-19 11:23:05
316
原创 笔记本电脑屏幕泛白问题解决详解(AMD显卡)
下载之后进入到,游戏=>显示器=>找到var Bright,把该功能给禁用掉即可。如果无效禁用后,请重启电脑。如果没有驱动管理软件AMD Software,请下载该软件全名叫做:AMD Software: Adrenalin Edition 应用。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。:是AMD为其显卡产品开发的官方驱动程序和控制面板软件,主要用于优化和管理AMD显卡的性能和功能。本人的电脑是AMD显卡,出现屏幕泛白。
2025-02-06 14:03:38
851
原创 Windows中如何查看Java进程对应的进程ID(PID),以及如何kill进程详解
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。在任务管理器中,找到对应的进程id,进行手动停止。如何通过Java服务的端口号找到对应的进程ID呢。查看当前系统中所有正在运行的Java进程。taskkill -PID 进程号 -F。对应的具体含义说明,如图所示。
2025-01-24 17:35:40
600
原创 Java IDEA中Gutter Icons图标的含义
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。File->Setting进到idea的设置页面。接着我们就可以看到,对应图标的含义。装订线图标位于左侧编辑器中。它们调用一些基本操作以及其他特定于框架和技术的功能。但是我们有时候并不知道它的含义和设置显示与隐藏,下面给大家讲解一下。很多人刚开始用IDEA来学习编程,会发现下面这些图标。
2025-01-14 15:49:03
417
原创 Android 解决“Could not resolve all artifacts for configuration ‘:classpath‘方法
例如,如果 mavenCentral() 和 https://mvn.mob.com/android 都包含相同的 JAR 文件,但 https://mvn.mob.com/android 在前面,Gradle 会从该仓库下载 JAR 文件,而忽略后面的仓库。如果该依赖包存在,它会立刻使用该版本,不会继续查找后面的仓库。Gradle 会缓存已经下载的依赖,如果你之前从 mvn.mob.com 仓库下载过 JAR 包,而其他仓库并没有提供该版本的 JAR,Gradle 可能会直接从缓存中加载依赖。
2024-12-18 13:55:40
1321
原创 Android Kotlin中协程详解
使用Kotlin协程需要引入Kotlin协程依赖包,这里引入的Kotlin核心依赖包,需要根据当前项目使用的Kotlin版本来引入,我使用的Kotlin版本为1.4.32所以引入的Kotlin核心依赖包版本为:1.4.3。那么这里可能就有人要问了,这个挂起函数有什么用呢,在实际项目中,我们可以封装一些网络请求,IO操作等耗时的功能封装在挂起函数,这样别人看到之后也能明白,这些挂起函数是要在协程中进行使用的。中执行,所以当开启协程的时候,协程作用域中的代码不一定是执行在子线程的,这取决于这个线。
2024-10-22 15:30:19
1626
原创 Android studio设置国内镜像代理(HTTP Proxy)教程详解
1、Android Studio是在谷歌的服务器上,初次安装Android Studio时下载SDK可能会失败,出现下载不了Android SDK的情况,这时我们需要,进入Android Studio设置HTTP Proxy 也就是网络代理,进行SDK的下载。代理设置解决的是网络连接的问题,而仓库地址配置的是资源来源的问题。在某些情况下,你可能需要输入一个 URL(例如,自动检测的代理服务器的地址),这是为了让 Android Studio 知道如何获取或验证代理设置。
2024-08-26 11:46:36
31730
4
原创 Android studio中通过Gradle依赖无法下载三方库Failed to resolve: com.scwang.smartrefresh:SmartRefreshLayout:1.1.0
在老版本Android studio中已经在build.gradle中配置了国内镜像源/依赖库。
2024-05-22 14:37:05
2189
原创 Android中华为手机三态位置权限申请理解
这样,在下次用户再次打开应用程序时,应用程序可以直接使用之前获得的权限,而不需要再次请求用户的授权。总的来说,"仅使用期间允许"更加严格,确保应用程序只能在用户使用应用程序的时候获取位置信息,而"允许本次使用"则允许应用程序在一定时间内持续获取位置信息,即使用户已经离开应用程序。思考:如果我们点击了允许本次使用,那我们在位置信息权限页面则会看到每次使用询问被选中,那是不是每次进入APP如果需要用到位置权限,岂不是每次都要申请权限,但是我测试发现并不是这样,并不需要再去获取权限了。
2024-05-21 18:16:22
4666
1
原创 Android中对MVC,MVP,MVVM架构的理解
但是随着软件越来越来复杂,会发现这样的写法不是太好,有些缺陷,Controller和View越来越耦合了,Controller指挥View去显示,具体怎么显示Controller是不关注的,比如setContentView(R.layout.activity_m_v_c),和具体的摆放逻辑全部是在xml中进行摆放布局的,但是Controller层要操控具体的数据应该放在哪个控件上,随着软件越来越大,Controller和View层的关系越来越紧密,所以引入了MVP架构。1、Model层对应的代码。
2024-05-07 12:03:45
2187
1
原创 Android中TabLayout与ViewPager结合使用生命周期详解
这里我们想要探讨的是生命周期这块,如上所示我们是继承的带一个参数的FragmentPagerAdapter,但是已经被废弃了,内部其实实现的是。我们现在使用最新的AndroidX中,尽量使用该行为BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT。先执行了标签一的onResume()方法,标签二的onResume()方法并没有执行。当我们在切换标签页的时候,生命周期方法也没有再次执行,因为已经加载过了。可见首次加载都会执行Fragment的onResume()方法。
2024-05-06 10:52:45
768
原创 Android中Gradle的生命周期详解
settings.gradle 执行setting.gradle文件里面的代码,把对应的项目结构给配出来。第二个阶段:定义阶段(配置阶段),通过执行多个build.gradle去画一个任务的有向无环图。如果在第二三阶段之间插代码,那么是在根目录的build.gradle文件的最后面加入。这个时候有向无环图就画好了。如果想要在第一二阶段之间插代码,那么在setting.gradle文件下。第三个阶段:执行阶段,按照任务的依赖按照顺序执行即可。这个项目先执行项目根目录下的build.gradle。
2024-03-13 17:18:10
603
原创 Android中compile,implementation和api的区别,以及gradle-wrapper的详解
如果你已经有被wrap的gradle,那么就使用已经有的,如果没有就下载下来进行使用。:项目变小了,只需要指定需要版本的gradle,不需要将gradle放进项目里面,如果其他人要使用该项目,只需要使用使用其他人电脑上面的gradle即可,如果没有下载下来使用。重要:当我们使用了传递依赖compile,0级项目依赖了1级项目,1级项目依赖了2级项目,2级项目代码的改动,会导致0级项目重新编译。那么就是A能使用C中的类。不进行传递依赖,2级项目代码的改动,不会导致0级项目编译,这样项目打包的总时间会变快。
2024-03-13 15:51:58
2776
原创 Android studio Gradle下载失败,如何手动配置解决该问题详解
今天在打开公司一个项目时,突然要重新下载相关的gradle,不知道Android studio抽了什么风哈哈哈,但是一直提示下载失败,把项目根目录下的.gradle缓存删除也无济于事。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。通过Android studio加载任何项目后,都会自动下载gradle,找到项目对应的gradle版本进去。下载对应的.zip压缩包。以下就是一个gradle下载失败的一个情况,具体步骤已在图片中给出。
2024-03-08 10:32:03
6512
原创 Android中自定义View时尺寸需要注意的相关事项
在Android中自定义View时,一定要用dp或者sp不要用px,这样在不同的设备上面才有一至的显示效果,这可能是做了很多自定义View的安卓开发者所没有注意的事情。但是我们在自定义View时,只有像素px来进行设置,那么这个时候就需要通过把对应的dp转换为像素值px之后应用到对应的视图上面。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。下面提供两个Kotlin的拓展函数,来将dp,sp转换为px。
2024-02-22 18:04:52
747
原创 Android中通过属性动画实现文字轮播效果
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。一、创建一个自定义ProvinceView类,具体代码如下。三、在Activity中通过属性动画来实现文字轮播效果。二、在对应的xml中引入该自定义View。
2024-02-22 17:53:20
777
原创 Android约束布局中用ConstraintHelper实现过渡动画效果
通过继承 ConstraintHelper 类,CircularRevealHelper 类可以继承 ConstraintLayout 的功能,并且可以通过调用父类的方法来获取 ConstraintLayout 中的子视图,进而对这些子视图进行 CircularReveal 动画的实现。继承ConstraintHelper的作用:继承 ConstraintHelper 类的主要目的是为了在自定义 CircularRevealHelper 类中重用 ConstraintLayout 的布局约束和属性。
2024-02-22 14:18:04
737
原创 Android studio报错误提示 Some Kotlin libraries attached to this project 问题解决方案
问题原因:Android studio默认生成的依赖库版本太高,是用最新的Kotlin编译器编译的,需要更新Kotlin插件,这个时候,我们只需把依赖版本降低即可。这个项目附带的一些Kotlin库是用更新的Kotlin编译器编译的,无法读取。请更新Kotlin插件。app目录下的build.gradle为,这是Android studio默认生成的。这是可以编译通过的版本依赖,把这写依赖拷贝到你的项目中即可通过。Android新建项目后,报以下错误。
2024-01-05 11:07:31
2428
3
原创 Android 项目适配64位架构后,腾讯X5内核加载失败解决方案
这个可用的依赖是来自 com.tencent.tbs.tbssdk 组织的项目,具体原因不得而知,但是已经解决了加载失败的问题。在接入最新腾讯X5内核后,发现初始化会失败,在APP模块的build.gradle文件中放入对应的依赖,依赖由官网提供。这个时候我们把真机上原有的APP删掉,之后重新运行,不然无法真实的测试是否能正常加载。用这个将包更改为2020年发布的版本即可使用,X5内核也能正常加载了,大家也能发现仓库名成也变了。如果知道原因的朋友们,可以在评论区一起讨论一下,一起成长,一起进步!
2024-01-04 11:54:44
3849
原创 一位安卓开发程序员的2023年终总结
在新环境办公确实挺欣喜,因为毕竟搬到了一个新环境,新鲜感还是有的,工作也很有干劲,因为新办公场地,比以前大了将近四倍,当时觉得公司未来可期,自己估计也能跟着喝个汤,年底涨个薪啥的,就在我还没从梦中醒来的时候,在我正在热火朝天工作的时候,同事跟我说公司开始裁员了,当时我的心想裁就裁呗,我这边活多的很,我还这么年轻,技术也还算OK,跟我有什么关系呢,主打一个事不关己的样子,两个小时候后,我便收到HR的消息,让我去办公室一躺,这个时候我才知道也裁到了我的头上。接下面的事情关注我的人应该都知道,马不停蹄的找工作。
2023-12-30 13:16:23
702
原创 Flutter最新配置本地资源文件详解,报错看这篇文章就对了!
放开后还需要微调一下,原有的是images文件下,存放图片资源,也可以自己新建文件夹,这里我用的是assets文件夹,这里面存放本地资源图片。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。Flutter中配置对应的资源图片等本地资源,需要在pubspec.yaml文件中进行相应的依赖配置。这个不是另加的,在大概60多行的位置已经有给出的模版,把注释放开。1、配置的位置不对,如下图所示。这个时候点击Pub get。
2023-11-16 15:32:23
645
原创 Android studio配置Flutter开发环境报错问题解决
2、在Flutter项目下的Android目录下,找到gradle.properties文件。博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家。Flutter默认使用的Gradle版本为7.3.0 ,所以需要JDK 11。这就是每次创建Flutter项目所默认的gradle插件的版本。配置对应的JDK11路径即可。下载后,放到对应的路径下。1、首先下载JDK11。
2023-11-15 15:29:32
1746
原创 Android中OkHttp源码阅读二(责任链模式)
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家。2、定义四个Task类,都继承自BaseTask,这里只写一个其它三个同理。2.定义一个链条管理类ChainManager。3.定义三个Task1,Task2,Task3。1、定义一个抽象类BaseTask。4、定义一个Test类进行测试。3、定一个Test类进行测试。1.首先定义一个接口。
2023-09-03 18:03:22
1740
原创 Android OkHttp源码阅读详解一
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家。4、根据OkHttp中构建者模式写一个例子。4、定义一个类DesignerPerson。2、OkHttp源码阅读之线程池详解。5.定义一个类UserClient。1.定义一个类HomeParam。2、OkHttp主线流程源码阅读。1、首先回顾OkHttp的使用。3、定义一个类Worker。2.定义一个类House。
2023-09-03 17:52:34
1107
原创 Android全面屏下,默认不会全屏显示,屏幕底部会留黑问题
若开发者没有声明该属性,ratio_float 的默认值为1.86,小于2.0,因此这类应用在全面屏手机上,默认不会全屏显示,屏幕底部会留黑。具体声明如下,其中的 ratio_float 被定义为是高除以宽,以 16:9 为例,ratio_float = 16/9 = 1.778 (18:9则为2.0)。这个属性设置为了false,我们新建的项目,是没有这个属性的,然后我把这个属性设置为了true,底部黑条便没有了,实现了全面屏。最终解决了这个问题,以后排查问题,一定要细心细心,再细心。
2023-08-28 14:48:42
1768
原创 Android JNI实现锅炉压力显示系统详解
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。第三步实现在MainActivity中,调用相关的C代码,显示锅炉压力值,根据压力值显示不同的UI在Android设备上。第二步在build.gradle文件中,进行相关配置。第四步实现自定义View,PressureView。第一步创建GuoLu.c文件。
2023-08-13 16:16:24
404
原创 Android JNI开发从0到1,java调C,C调Java,保姆级教程详解
第三歩,在app目录下的build.gradle文件中的,android{}闭包中,指定CMakeLists.txt路径。2.根据命令行javah +JNI2的全类名,生成com_example_jniproject_JNI2.h头文件。在app目录下,指定CmakeLists.txt文件,根据注释进行相应添加。3.根据jni协议,去写对应的c代码,创建Test.c文件,代码如下。2.根据命令行,javah +JNI3全类名,生成对应的头文件。第五步,C代码调用Java代码,首先创建JNI3.java。
2023-08-12 16:17:01
2361
原创 C语言基础入门详解三
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。二、C语言中联合体的理解。五、C语言中结构体指针。一、C语言之函数指针。四、C语言中的结构体。
2023-07-30 12:48:51
210
原创 C语言基础入门详解二
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。静态内存是程序编译执行后系统自动分配,由系统自动释放,静态内存是栈分配的。三、C语言中让用户输入数组。四、C语言中数组的取值运算。六、C语言中静态内存分配。七、C语言中动态内存分配。八、C语言中动态创建数组。一、C语言多级指针入门。二、C语言中数组的简介。五、C语言中的指针长度。
2023-07-30 11:44:51
183
原创 C语言基础入门详解一
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。3、被调函数中通过修改 *形参名的方式修改主调函数相关变量的值。执行switch1()函数控制台输出的结果。执行switch2()函数控制台输出的结果。通过被调函数修改主调函数普通变量的值。1、实参必须是普通变量的地址。一、C语言基本数据类型详解。七、C语言中函数返回多个值。四、C语言指针的初步认识。五、C语言指针的深入理解。二、C语言输出函数详解。三、C语言输入函数详解。
2023-07-29 13:53:06
288
原创 Android 获取项目证书指纹MD5、SHA1、SHA256步骤详解
第一步,首先找到Android studio依赖的本地JDK路径。这样便可以拿到MD5、SHA1、SHA256这些值。第二步,找到路径输入cmd。第三步,输入指令如下。
2023-07-21 16:40:50
5077
原创 Android Hook技术实战详解
而通过Hook技术,我们可以修改或拦截这些API的行为,以达到修改系统或应用程序行为的目的。Android Hook技术是指在Android平台上通过修改、拦截或替换系统或应用程序的API、方法或行为,实现对系统或应用程序的定制和扩展的技术手段。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。1.首先定义MainActivity,在该类里面通过hook()方法,进行了Hook,具体注释已经在代码中给出。下面实现一个简单的例子。
2023-07-16 20:52:47
1974
1
原创 Android手写占位式插件化框架之apk解析原理系统源码分析
问题引出,在宿主app中获取插件包中静态注册的广播接收者StaticeReceiver,这个时候就需要apk解析原理系统源码分析,分析后进行再来操作。一、在宿主APP中的PluginManager类中,增加一个方法parserApkAction(),通过反射源码,来解析apk文件里的所有信息。前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。分析完apk解析原理后,然后通过反射技术进行获取对应的信息。
2023-07-16 10:40:18
781
原创 Android手写占位式插件化框架之Activity通信、Service通信和BroadcastReceiver通信
因为插件APK是没有安装和运行的一个APK文件,是没有上下文环境的,所以插件内部的Activity也就无法直接运行,只能通过代理的Activity,做为其上下文,并加载布局进行显示。很多大厂APP内会有很多功能模块,但是包体积却很小,那么就用到了插件化技术,点击某个模块后,从服务器获取对应的APK文件,并使用其内部的功能。因为插件APK是没有安装和运行的一个APK文件,是没有上下文环境的,所以不能使用自身的this,因为自身的this为空。3、这种插件化,在写插件开发的时候,有什么要注意的事项?
2023-07-15 16:28:51
1015
原创 Android PackageManagerService源码分析和APK安装原理详解
mPM是系统中写的AIDL文件,通过mPM.getPackageInfo(),调用到代理对象Proxy类中重写的getPackageInfo()方法,代理对象又调用到PackageManagerService中的getPackageInfo()方法。首先通过adb install 输入包名后,一敲回车,会执行到commandline.c文件下的,adb_commandline()方法。1.静默安装,又叫无界面的安装,从各大手机厂商应用商店下载的APK,便是无界面的安装。
2023-07-13 21:17:21
1564
原创 No signature of method: build_dr75kj88i2pi195a6zalvt5yu.android() is applicable for argument types
因为本项目创建时勾选的是Kotlin语言,因此Android studio会自动加入插件apply plugin: “kotlin-android”!
2023-06-02 15:16:42
754
原创 Android中Binder在项目中的具体使用详解
在 Android 应用程序中使用 Binder 通常可以通过两种方式实现,一种是使用 AIDL(Android 接口定义语言)定义接口,并通过 Binder 服务实现接口的跨进程调用,另一种是通过 Messenger 实现基于消息的跨进程通信。Binder API:位于 Java 层,是 Android 应用程序和 Binder 驱动之间的接口,它提供了创建 Binder 服务和跨进程访问 Binder 服务的方法和实现。在服务端B程序进行登录后,跳转到客户端程序A,打印的。
2023-05-30 15:21:08
3044
原创 Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。Flutter中 自定义图标一直显示出来的问题,这里引用的是阿里妈妈图标。
2023-05-07 17:09:38
488
原创 Android GridLayoutManager.setSpanSizeLookup的使用介绍
使用setSpanSizeLookup后的效果图如下。
2023-03-12 11:01:28
1380
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人