自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (32)
  • 收藏
  • 关注

原创 mac出现java程序运行版本不一致解决方案

所以也就是编译jadx-1.5.1-all.jar用的JRE是java11,而我现在电脑上的java运行时环境是java8,用命令查看一下。mac下的JDK都默认安装在这个目录下:/Library/Java/JavaVirtualMachines/如果当前使用的shell是zsh就编辑.zshrc文件,如果是bash就编辑.bash_profile文件。javac -version 查看当前Java的jre版本。java -version 查看当前Java的jdk版本。我这里下载的是JDK22版本。

2025-03-18 14:25:08 517

原创 常用Kotlin方法

kotlin的集合分为可变和不可变,可变的集合带有mutable形容词。list转array,set转list,list转MutableList。

2025-03-11 09:16:30 179

原创 ViewBinding使用

ViewBinding是 Android 开发中用于替代 findViewById的功能,以更简单、安全的方式访问布局文件中的视图组件。View Binding 会为每一个activity文件生成一个绑定类,类的名称 NewsContentFragBinding 是一个自动生成的类,它为布局文件 news_content_frag.xml 提供 binding 类。现在就可以使用生成的 View Binding 类访问和修改布局文件内的视图组件。现在,你可以在代码中使用 View Binding。

2025-03-07 15:22:21 162

原创 kotlin中reified如何实现真泛型

reified是 Kotlin 的「」,配合inline函数,让泛型在运行时保留类型信息,直接看到具体的类型(不再被类型擦除蒙蔽双眼)。

2025-02-28 15:13:38 457

原创 Gradle 依赖配置详解:`api`、`compile`、`compileOnly`、`implementation` 的区别

在 Gradle 构建系统中,理解依赖配置对于优化项目结构和构建速度至关重要。随着 Gradle 版本的演进,compile配置已经被废弃,取而代之的是更现代的api和配置。此外,用于特定场景。这篇文章将详细介绍这些依赖配置的用法及其区别。compileapi。

2025-02-26 16:55:21 566

原创 Android程序自身重启程序的几种方法

可以创建一个新的 Intent 对象,将需要重新启动的 Activity 添加到 Intent 中,并使用 FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_SINGLE_TOP 标志,其中 FLAG_ACTIVITY_CLEAR_TOP 是用来清除 Activity 堆栈的,而 FLAG_ACTIVITY_SINGLE_TOP 表示只是重新使用已有的 Activity,而不是创建新的 Activity。使用 recreate() 方法。

2025-02-18 15:18:06 366

原创 javac生成的名称中的$$含义

但是由于规范允许任意共享/重用表示等效lambda表达式的类和实例(执行相同的操作)和方法引用(针对相同的方法),所以这种命名模式并不是每个实现策略都能实现的。此外,第3次执行总是遇到与第2次相同的类,因为它是相同的方法引用表达式(注意:由于所有表达式的目标是相同的,所以不同的表达式),并且类被重复使用。ClassD$ClassDd$ClassDdd.class,这里ClassDdd是对底层的普通内部类,它的父类ClassDd,而ClassDd的父类也是最外层的外部类ClassD。

2025-02-14 09:31:49 467

原创 Android-目前最稳定和高效的UI适配方案

为了更形象的展示,假设我们在布局文件中把一个ImageView的宽度设置为360dp,那么在下面两张图中表现是不一样的:图一是1080P,480dpi的手机,图二是1080P,420dpi的手机从上面的布局中可以看到,同样是1080P的手机,差异是比较明显的。在这种情况下,我们的UI可能需要做一些微调甚至单独适配。

2025-01-15 15:15:39 932

原创 Android string.xml中特殊字符转义

进行显示、在XML中空格符不是用HMTL中的表示、而是用编码表示。针对特殊字符:@号 冒号等,直接写肯定不行,需转译。项目中要在string.xml 中显示特殊符号。(一个中文宽度,但用起来会比中文字宽一点点)(半个中文宽度,但两个空格比一个中文略大)(中文全角空格 (一个中文宽度))(普通的英文半角空格但不换行)不要忘记,需一同带上。

2025-01-14 16:49:26 1054

原创 Fragment setMaxLifecycle方法

ViewPager2中最新的Fragment代码淘汰了方法,转而支持用方法,言外之意是设置最大生命周期,懂行的人应该知道,Fragment一直都是无法直接设置生命周期,必须通过addattachremovedetachshowhide方法间接干预,本来就此功能,简单介绍一下的原理和上手效果;定义在中,和之前的addattachremovedetachshowhide等方法是并列关系;fragment即需要操作的Fragment对象,前提条件是这个fragment必须已经加到中;state。

2025-01-14 15:41:00 611

原创 Kotlin中异常

1、kotlin中的异常处理和java处理相似,除了Kotlin不要求你声明函数可以抛出的异常。2、如果一个try代码块执行一切正常,代码块中最后一个表达式就是结果。3、如果捕获到一个异常,那么cache代码块中最后一个表达式就是结果。

2025-01-10 17:56:59 846

原创 Kotlin接口

实例中接口 A 和 B 都定义了方法 foo() 和 bar(), 两者都实现了 foo(), B 实现了 bar()。因为 C 是一个实现了 A 的具体类,所以必须要重写 bar() 并实现这个抽象方法。然而,如果我们从 A 和 B 派生 D,我们需要实现多个接口继承的所有方法,并指明 D 应该如何实现它们。这一规则 既适用于继承单个实现(bar())的方法也适用于继承多个实现(foo())的方法。实现多个接口时,可能会遇到同一方法继承多个实现的问题。一个类或者对象可以实现一个或多个接口。

2025-01-10 17:35:47 194

原创 Kotlin高阶函数

所有函数类型都有一个圆括号括起来的参数类型列表以及一个返回类型:(A, B) -> C 表示接受类型分别为 A 与 B 两个参数并返回一个 C 类型值的函数类型。因为这其实是个假的调用,它是 Kotlin 的语法糖,实际上你对一个函数类型的对象加括号、加参数,它真正调用的是这个对象的 invoke() 函数。我们可以很容易地直接调用它(isOdd(5)),但是我们也可以将其作为一个函数类型的值,例如将其传给另一个函数。高阶函数是将函数用作参数或返回值的函数,还可以把函数赋值给一个变量。

2025-01-10 17:09:10 950

原创 Kotlin 内建代理

观察者模式是一种设计模式,在这一模式中,一个对象会维护一个它的从属者的列表,这些从属者即被称为观察者。对象会在它自己的状态改变时对观察者进行通知。由于惰性初始化是同步的,所以在第一次访问时仍会消耗与非惰性初始化过程相同的时间,这意味着那些初始化过程较为耗时的对象仍会在被访问时阻塞 UI 线程。会创建一个ObservableProperty对象,用于在每次 setter 被调用时执行您传给代理的 lambda 表达式。lambda 表达式会在属性第一次被访问时执行,而它的值将会被存储以用于接下来的访问。

2025-01-09 17:09:28 909

原创 Kotlin学习(一)

为了让 Java 不能访问 Kotlin 中的函数,可以在 Kotlin 中将这些函数的命名改为不合法的形式,然后用反引号包起来,这么做之后,Java 代码是不能调用这些方法的,而 Kotlin 可以调用,从而可以实现在 Java 中屏蔽某些 Kotlin 函数的效果。说明不够,代码来凑!Java 中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个属性值,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性。

2025-01-09 16:10:41 1428

原创 Docker访问公网的方法

Docker访问公网的方法有:配置正确的网络模式、设置DNS服务器、调整防火墙规则、使用Docker Compose管理网络。 其中,配置正确的网络模式是确保Docker容器能够访问公网的关键。Docker的网络模式包括bridge、host、none和container模式,其中bridge模式是默认的网络模式,它创建了一个虚拟网桥,将容器连接到宿主机的网络上。正确配置bridge模式可以确保容器能够正常访问公网。要详细了解Docker如何访问公网,我们需要从多个方面来探讨,包括Docker网络模式的选择

2024-11-21 16:18:14 968

原创 HashMap多种遍历方式

①entrySet()遍历map1.put("小明", 1);map1.put("小红", 2);map1.put("小张", 3);//for-each + entrySet()遍历②lambda表达式遍历map1.put("小明", 1);map1.put("小红", 2);map1.put("小张", 3);//lambda表达式遍历});

2024-11-18 10:06:41 1477 1

原创 WebView多进程错误

Crash信息:项目中开启了两个进程:com.xxx.app.test 和 com.xxx.app.test.pushcore错误原因:Android P行为变更,不可多进程使用同一个目录webView,需要为不同进程webView设置不同目录。

2024-11-06 14:15:15 1073

原创 Android DataBinding的使用

本文是用来简记DataBinding使用前的配置及一些情况下的使用。默认情况下,生成的Binding类的名称是布局文件去除下划线、(),所有单词首字母大写(被下划线分割的视为一个单词)。然后再后面加上Binding。被放置在build\generated\source\apt\debug\项目包名\databinding包下。自定义Binding类名称:...更换生成的Binding类所在的包:直接在刚刚的指定的名称前指定包名就可以了。...

2024-09-26 21:41:33 1728

原创 Jetpack+MVVM

我们可以使用自定义在xml中可使用的View属性,名字空间是不需要的,加了反而还会给你警告.

2024-09-19 17:08:24 368

原创 rxjava Emitter

在这个例子中,我们创建了一个Observable,然后定义了一个Subscriber来订阅这个Observable。方法来创建Observable,并通过Emitter发射了一个事件,然后完成。Subscriber中的方法会根据Emitter发出的事件类型(在Android开发中,RxJava是一个流行的库,用于处理异步和基于事件的编程。Emitter是RxJava的一个组件,它用于发射事件。: 发射一个错误事件,表示事件流出现异常。: 发射一个完成事件,表示事件流结束。: 发射一个非结束事件。

2024-09-19 15:42:39 248

原创 Android JetPack系列之——Navigation

根据官方介绍,JetPack是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。下面是官方关于Jetpack的描述图1. 基础组件``(1) AppCompat:使得支持较低的 Android 版本。从以前继承 Activity 到现在继承AppCompatActivity 就是属于这一部分``(2) Android KTX:Kotlin 的扩展支持库`

2024-09-19 15:23:34 1659

转载 Android多开/分身检测

多开/分身原本用于方便有多个微信/QQ解决同时登录的问题,但近来年被各种黑产所利用,多见于薅羊毛,部分多开App甚至提供了篡改功能。对于普通用户根本不会有多开的需求的App,一旦检测到当前运行在多开环境下,有理由限制该用户的后续行为。在尝试了目前市面上多款多开App后,总结了几种检测方案。

2024-08-27 13:56:49 687

转载 【无标题】

关于沉浸式标准的定义:App默认是全屏的,用户可以从顶部或者底部“滑出”状态栏和导航栏,一段时间后状态栏和导航栏会自动消失。

2024-08-23 09:08:14 61

原创 ImageView scaleType属性

(1)当图片大于ImageView的宽高:以图片的中心点和ImageView的中心点为基准,按比例缩小图片,直到图片的宽高有一边等于ImageView的宽高,则对于另一边,图片的长度大于或等于ImageView的长 度,最后用ImageView的大小居中截取该图片。(2)当图片小于ImageView的宽高:以图片的中心店和ImageView的中心点为基准,按比例扩大图片,直到图片的宽高大于或等于ImageView的宽高,并按ImageView的大小居中截取该图片。小图放大两边都大等于IV,大的一边裁切掉)

2024-08-15 09:34:44 1079

原创 Android 15 适配之16K Page Size

15来了 适配问题也就来了,之前讲过里面有简单提到过16K内存适配,本文就针对16KB页面设备适配详细介绍一下,

2024-07-29 16:42:32 2601

原创 Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:

老项目放到新AS上面报错:解决方法:在gradle.properties文件最后添加:

2024-07-29 08:58:28 1116

原创 安卓项目中so库选择

NDK编译出来的。一些重要的或者核心协议一般都用c写然后给java调用。这样可以避免反编译后查看到应用的源码。放置so文件的正确方式:• 为了减小 apk 体积,只保留 armeabi 和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 .so 数量一致• 对只提供 armeabi 版本的第三方 .so,原样复制一份到 armeabi-v7a 文件夹。

2024-07-08 23:51:50 815

原创 java.lang.IllegalArgumentException: pointerIndex out of range

这是ViewPager自身对于多点触控处理的bug,该bug可以追溯到Android4.4。该问题会导致应用崩溃。根本原因在于没有调用 super.onInterceptTouchEvent();造成 mActivePointerIdactivePointerIndex的值不能正确获取。导致父类 onTouchEvent取值错误,最终 onTouchEvent不能正确执行。或者在调用getX getY的位置添加异常捕获。

2024-07-04 18:07:14 454

原创 编译错误:module java.base does not “opens java.io“ to unnamed module @45208b59

修改工程中gradle.properties 文件。

2024-07-02 14:44:56 319

原创 Android中常见SDK类型区别

定义:常见的第三方库包括:*.so、*.jar、*.aar。

2024-07-02 14:32:24 1101

原创 编译错误:org.gradle.api.plugins.UnknownPluginException: Plugin with id ‘maven‘ not found

在 build.gradle文件中 将原代码。

2024-07-02 14:14:25 642

原创 android gradle错误:Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt

【代码】android gradle错误:Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt。

2024-07-02 10:13:28 857

原创 Lambda表达式讲解

Lambda表达式是JDK1.8之后的一种语法,是一个匿名函数,是对匿名函数的简写形式,我们可以把 Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递),可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升;//之前的排序@Override});//使用Lambda表达式通过上面的对比,发现Lambda表达式式书写起来更为简洁;

2024-06-27 23:37:18 863

原创 Android studio Logcat 功能介绍

Android Studio Jellyfish版本下logcat功能,不同的tag会有不同的颜色,不同level等级的log默认也有不同的颜色。log过滤修改的更简洁了,原先的log视图只需要勾选就可以选择不同level的log了,只需要选择只展示当前应用的log就可以过滤掉其他应用的log。

2024-06-26 14:48:55 2324

原创 Mac环境下反编译apk

将xxx-dex2jar.jar 文件拖拽到 jd-gui下面查看代码即可。对xxx.apk进行反编译,得到一个同名的目录,里面就是布局文件。1)将xxx.apk拷贝到dex2jar所在目录中。2)命令行下定位到dex2jar文件夹,执行。生成 xxx-dex2jar.jar。dex2jar反编译。

2024-06-25 17:23:25 1607 1

原创 关于jd-gui启动报This program requires Java 1.8+的错误

然后,打开“Contents/MacOS/universalJavaApplicationStub.sh”文件,使用以下资源替换,保存即可。在“访达”中,右击JD-GUI图标,点击“显示包内容”。

2024-06-25 16:41:48 1470

原创 Android源码目录结构介绍

Android源码包含比较多的文件,比如Android系统的所有页面,里面的所有app程序,还包含了sdk,各种镜像img等等。完整Android源码基本在200多G左右,而且这还是比较初始的设计板,里面几个基本功能的app程序。Android源码编译得到镜像文件img并不是很大,一般1-2G,把这几个镜像烧录到我们的Android设备上,Android设备就可以运行起来,就像我们正常使用的手机那样。

2024-06-25 14:26:38 970

原创 SVN常用命令

svn cp -m "描述内容" http://svnbucket.com/repos/trunk http://svnbucket.com/repos/branches/online1.0。# 显示文件的每一行最后是谁修改的(出了BUG,经常用来查这段代码是谁改的)# 若想创建一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容。# 查看文件列表,可以指定-r查看,查看指定版本号的文件列表。# 查看指定版本的文件内容,不加版本号就是查看最新版本的。# 查看指定文件的所有log。

2024-06-25 10:18:55 761

原创 Mac Terminal常用命令

【代码】Mac Terminal常用命令。

2024-06-24 10:45:39 1721

Tinker 打补丁命令行工具包

命令行如下: java -jar tinker-patch-cli-1.9.14.25 -old old.apk -new new.apk -config tinker_config.xml -out output 需要注意的就是tinker_config.xml,里面包含tinker的配置,例如签名文件等。

2024-07-24

universalJavaApplicationStub.sh

在Mac使用上JD-GUI启动时,报了如下的错误: ERROR launching 'JD-GUI'   No suitable Java version found on your system! This program requires Java 1.8+ Make sure you install the required Java version.

2024-06-25

篡改猴chrome插件

篡改猴chrome插件

2024-06-21

计算机专业英语词汇1500词

计算机专业英语词汇1500词 计算机专业英语词汇1500词

2023-10-03

UI控件应用

UI控件基础介绍,里面包含各种基础控件的基础使用方法,比较适合初学者借阅。谢谢

2015-02-25

diffmerge 文本文件夹对比工具

diffmerge 文本文件夹对比工具,不错的文件对比工具

2014-01-08

MockupsForDesktop

MockupsForDesktop一款不错的原始设计工具

2014-01-06

AndroidApk反编译

AndroidApk反编译 里面包含三种反编译方式。dex odex 反编译java文件 反编译 xml文件。

2014-01-05

Axure_RP_Pro

Axure 是一款很好的原型设计工具,操作简单,容易。无论是IOS还是android 开发都将是一款非常实用的原形设计工具。

2013-12-05

Git基本命令

Git常用基本命令 很不错,是图形界面

2013-11-25

jsoup-1.7.2最新

jsoup-1.7.2 jsoup-1.7.2

2013-03-27

Java数据结构和算法

Java数据结构和算法

2012-07-29

Content与Graphics-DEVDIV_CO

Content与Graphics-DEVDIV_CO

2012-02-29

Android_api_demo

此文当中包含android apiDemo中所以案例对应的代码及其讲解。 感觉不错就然出来 给他家分享一下。

2012-02-27

Android_api

被人整理的东西 我就是拿出来给大家分享一下,方便学习交流。

2012-02-07

Java工程师试题(机构招聘)

Java工程师试题(机构招聘) Java工程师试题(机构招聘)

2011-08-19

Android_intent_大全

Android_intent_大全 Android_intent_大全

2011-08-11

一个线程池的Code

一个线程池的Code,从网上看到的!自己下来编译一下!

2011-07-27

JAVA面试题集合(项目2部)

Java面试题集合!这个不是本人总结,但觉得挺好的 就上来给大家分享一下!

2011-07-23

WanDouJiaSetup手机帮手

WanDouJiaSetup手机帮手 WanDouJiaSetup手机帮手

2011-07-23

android的几个小应用程序

CamScanner扫描全能王将手机变成便携随身扫描器,方便快捷地记录管理您的各种文档,收据,笔记和白板讨论等.并通过智慧精准的图像裁剪和图像增强演算法,保证您扫描的内容清晰可读。 -图像处理演算法自动裁剪图片、调整色彩和亮度、以保证文档清晰可读; -预览并生成PDF,支持10多种可供选择的PDF尺寸,以及三种PDF页面方向设定; -支持相机拍摄或从手机图库里选取图片进行扫描; -支援电子邮件共用您的文档和图片; -支援多种网路备份功能; -支持标签管理,利用文档标题或标签进行搜索; -支援列表以及缩略图两种流览模式。 无线传书,使你的手机通过wifi网络与电脑相连,让你能够在电脑上管理你手机中的文件,向手机传送文件,或从手机中获取文件。 无线传书,是一条隐形的,虚拟的数据线。 无线传书,界面简洁直接,操作简单,能够让你马上上手; 采用了标准的ftp协议,保证了文件传输的安全; 电脑不须安装客户端,也不需要安装驱动,只需要打开任意一个文件夹、或我的电脑、或资源管理器,在地址栏输入指定的地址即可,方便快捷 史上最简单的手机传输工具,只需摇一摇! 摇传是一个手机间文件传输工具,可以在两部安卓手机间传输照片、视频、音乐、程序及其他各种类型的文件。 传输的方法很简单:两部手机同时运行该软件,在其中一部手机上选中要传输的文件后,摇一下手机即可。文件传输完毕后可以直接在程序内打开或运行已传输的文件。

2011-07-23

commons-io-1.3.1

commons-io-1.3.1是JavaUtils的包,主要利用java处理文件(夹),很好的!

2011-07-22

Android-OPhone开发完全讲义

Android-OPhone开发完全讲义 中ch07-ch10部分的代码!

2011-07-17

monkey测试分析

monkey测试分析 monkey测试分析

2011-06-30

textpad java彩色突出显示的编辑器编辑和编译程序

textpad java彩色突出显示的编辑器编辑和编译程序

2011-04-17

android 整屏切换效果的Demo

android 整屏切换效果的Demo 利用viewfliper

2011-04-16

Android_API_中文_(15)_——_GridView.doc

Android_API_中文_(15)_——_GridView.doc Android_API_中文_(15)_——_GridView.doc

2011-04-08

计时器!计时器!StopWatch-1.1.zip

为了防止你上网时间过长忘记时间,控制自己的办事时间。

2011-04-06

Android_JNI实例(android_学习资料_集成测试_及实例程序源代码_,JNI实例程序_)

看到关于JNI方面的知识,先来分享一下吧!

2011-02-14

Mp3Player android_foundation

Mp3Player android_foundation 按照视频中的代码,自己瞧上去了! 自己练习!

2011-02-11

Mp3Player android

Mp3Player android Mp3Player android 初步代码,还带调试!

2011-01-28

android_musicPlayer简单的需要调试的代码和资源

android_musicPlayer简单的需要调试的代码和资源

2011-01-26

Android游戏开发实践宝典源代码2

Android游戏开发实践宝典源代码Android游戏开发实践宝典源代码

2011-01-13

Android游戏开发实践宝典源代码

Android游戏开发实践宝典源代码 Android游戏开发实践宝典源代码

2011-01-13

空空如也

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

TA关注的人

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