自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安卓项目中so库选择

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

2024-07-08 23:51:50 656

原创 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 177

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

修改工程中gradle.properties 文件。

2024-07-02 14:44:56 122

原创 Android中常见SDK类型区别

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

2024-07-02 14:32:24 748

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

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

2024-07-02 14:14:25 206

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

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

2024-07-02 10:13:28 122

原创 Lambda表达式讲解

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

2024-06-27 23:37:18 807

原创 Android studio Logcat 功能介绍

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

2024-06-26 14:48:55 1016

原创 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 499 1

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

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

2024-06-25 16:41:48 339

原创 Android源码目录结构介绍

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

2024-06-25 14:26:38 803

原创 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 345

原创 Mac Terminal常用命令

【代码】Mac Terminal常用命令。

2024-06-24 10:45:39 340

原创 android adb常用命令集

adb shell monkey -p 包名 --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v –s 1718955812918 100 monkey测试。"-X:" 分析和打印时,打印的每个数据包的报头,打印十六进制和ASCII的数据,每一个数据包(减去其链路层报头)

2024-06-21 16:42:36 562

原创 mac 常用工具快捷键集合

%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换。选中多行后按command + ]可以增加缩进,按command + [可以减少缩进。6、快速复制一行:Command+shift+D(将光标定位到要复制文字的后面)15、光标定位行,快速整体移动一行:Command+shift+上箭头/下箭头。16、布局:Command+Alt+2/3/4/5、Command+Alt。搜索则是向上的下一个)注:command + f 只能打开一个空空的搜索框,

2024-06-21 11:28:56 1236

原创 Mac OS 安装frida

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/注:清华:https://pypi.tuna.tsinghua.edu.cn/simple。正常启动后,另开一个终端,使用 frida-ps -U 命令检查frida是否正常运行。华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/豆瓣:http://pypi.douban.com/simple/安装frida-tools。

2024-06-20 15:55:17 362

原创 Java序列化进阶:Java内置序列化的三种方式

Java序列化就是把Java对象按照一定的格式存到文件或者磁盘当中序列化的进阶:即三种方式,任何一种方式都可以进行序列化和反序列化如果将数据读写到文档,一般通过 ObjectOutputStream 将数据写入到文件当中,就是一种序列化的过程;通过 ObjectInputStream 将数据从文件中读出来,就是一种反序列化的过程如果对数据不进行序列化系统就会抛出异常信息:java.io.NotSerializableException。

2024-06-20 10:09:06 750

原创 minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析

minSDK和targetSDK,这两者相当于一个区间。你能够用到,但又需要向后(向下)兼容到minSDK,保证这个区间内的设备都能够正常的执行你的APP。换句话说,想使用Android刚刚推出的新特性,但这对于你的APP又不是必须的。

2024-06-19 16:47:56 383

原创 支持的 Google Pixel 设备

3、sharp4、小米 Download the Android 15 Beta 1 build for , , and .5、TECNO。

2024-06-19 14:57:59 378

原创 LLDB内存分析

log enable gdb-remote packets和bt all。10. 设置断点 breakpoint set -s libxxxx.so -a 0x325f4。ps -A | grep "xxx" //获取 pid。8. 关联本地 file tools/lldb/libxxx.so。5. 在本地terminal 开启lldb。3. push 到 /data/local/tmp。4. 在手机开启lldb_server。6. 获取需要调试的应用。7. 联结需要调试的应用。

2024-06-18 16:26:28 373

原创 Android 15行为变更:所有应用

随着设备制造商不断打造具有更大物理内存 (RAM) 的设备,这些设备中的许多可能会配置 16 KB(最终更大)的页面大小,以优化设备的性能。是 Android 15 中的一项新功能,可让用户在其设备上创建一个单独的空间,通过额外的身份验证层来保护敏感应用不会被窥探。由于私密空间中的应用公开范围受到限制,因此某些类型的应用需要执行额外的步骤,才能查看用户的私密空间中的应用并与之互动。随着每个版本的发布,特定的 Android API 可能会过时,或需要进行重构,以提供更好的开发者体验或支持新的平台功能。

2024-06-18 14:59:02 1036

原创 Android网络性能监控方案 android线上性能监测

因为在一个类中,会存在很多属性,例如变量、方法、注解等等,所以在ASM中的ClassVisitor类中,提供了这些属性的访问权利,例如visitMethod可以访问方法,假如我们想要对funA进行插桩,那么就需要做一些自定义的操作,这里就可以使用ASM提供的AdviceAdapter来完成方法执行过程中代码的插入。首先我们看如果按照我们这种加代码的方式,当然没问题,但是在进行插桩的时候,将会写很多的字节码指令,看下面的代码,我仅仅贴出L2代码块就需要这么多,写的多通常就会出问题。

2024-06-17 09:47:32 1065

原创 TypeScript快速入门

已掌握TypeScript编程基础的学员可以跳过本章节的学习,没有接触过TypeScript的同学可以先补齐相关的语法基础,再进入HarmonyOS的相关开发学习之旅。TypeScript 是 JavaScript 的一个超集,它扩展了 JavaScript 的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。for..of和for..in均可迭代一个列表,但是用于迭代的值却不同:for..in迭代的是对象的键,而for..of则迭代的是对象的值。

2024-06-16 18:19:26 384

原创 Android 系统全局Bug日志监听

对于做系统开发的工作者而已,还可以通过自定义tag 、Log发送到DropboxManager里面,然后在一个地方统一记录采集,大大方便类多进程记录日志的麻烦!

2024-06-16 18:10:26 264

原创 Kotlin内联函数inline、noinline、crossinline

其中highFuc是函数名,函数中传入了2个参数,第一个参数为String类型,第二个参数即是函数类型,->左边的部分用来声明该函数接收什么参数的,多个参数之间用逗号隔开,如果没有参数直接使用()表示就可以了;现在有一种场景,我既想使用inline优化高阶函数,同时又不想调用方打断我的执行流程(因为inline是支持全局return的),貌似冲突了,这时候怎么办呢,这时候就需要crossinline了。结果也很明显,block0()函数没有被内联,而block()函数被内联,这就是noinline的作用。

2024-06-16 18:02:06 821

原创 Android断点续传原理及实现

常见两种网络请求方式一、 HttpURLConnectionHttpURLConnection的setRequestProperty()方法,对我们要读取的字节部分进行控制,比如:···1.Range=0-100代表只读取前100个字节。2.Range=100-500代表读取从第100个字节开始,读到第500个字节为止。3.Range=100-则代表从第100个字节开始读取,一直读取到文件末尾结束。···断点续传过程。

2024-06-16 00:08:01 692

原创 Android 断点续传实现原理

断点续传/下载需要使用到 java.io.RandomAccessFile 类,RandomAccessFile 的实例支持读取和写入随机访问文件,它也可以 seek(long pos) 设置从此文件的开头开始测量的文件指针偏移量,在该位置进行下一次读取或写入操作。但是这种做法有个明显的问题,假如手机在下载文件的时候下载了80%,某些原因断网了,如果不支持断点续传,那就只有被迫重头开始下载。在现实的场景中,服务器中的文件是会有发生变化的情况的,那么我们发起续传的请求肯定是失败的。

2024-06-15 23:59:04 841

原创 Retrofit 注解参数详解

下面是通过抓包获取的一次多文件+文本的上传消息,每行前面的行数是为了标注说明方便加上的,实际请求中没有。原文链接:https://blog.csdn.net/zhaoyanjun6/article/details/121000230。其实无论什么库,只要是发送 Http 请求,都得遵守 Http 协议,所以熟悉协议内容对理解库原理、调试是有很大帮助的。Form 表单提交数据, 数据也是放在 body 里面,通常 Form 表单和 @Field 注解联合使用。创建 ApiService 实例。

2024-06-15 23:17:41 881

原创 APM之:卡顿监控

通过主线程Handler发送消息到MessageQueue队列,5秒去看下这个Message有没有被消费,如果消费了则代表没有卡顿,如果没有,则代表有卡顿,当然这个5秒是可调节的。当耗时超过我们的阈值的时候就是发生卡顿的时机,我们触发收集调用堆栈,然后根据堆栈进行针对性优化即可。ANR-WatchDog机制原理不复杂,它内部启动了一个子线程,定时通过主线程Handler发送Message,然后定时去检查Message的处理结果。当耗时超过我们的阈值时我们即可收集调用堆栈,然后根据堆栈进行针对性优化即可。

2024-06-14 17:36:24 443

原创 移动端监控体系之技术原理剖析

在这样一个注重用户体验的时代,APM技术快速发展,国内更是百花齐放,最近对各个公司的APM产品有一个调研,并在此基础上进行了自己的实践。这里就从 iOS 的角度出发,谈谈自己对移动端 APM 的技术上的理解,并提供相对应的实例。

2024-06-14 16:55:47 666

原创 Android开发规范:APP版本发布(全量发布、灰度发布)

让大部分用户使用A版本,然后让一小部分用户开始使用B版本,观察B版本用户的反应,如果B版本用户没什么反应,那么就逐步地让A版本用户过渡到B版本。在一开始,我们不定义它是黑,还是白,有一个灰度的周期。很多人都看到了微信的成功,但大家不知道,其实在腾讯内部,先后有几个团队都在同时研发基于手机的通讯软件,每个团队的设计理念和实现方式都不一样,最后微信受到了更多用户的青睐。需要注意的是如果有v2版本灰度包,那么选择灰度目标需要避开v1版本的灰度目标,避免导致v1版本的用户再次收到升级提示,影响用户体验。

2024-06-13 15:35:26 988

原创 Android必备调试技巧

断点处 右键 Evaluate Expression。断点处的值,鼠标右键,set value 改值。

2024-06-12 23:49:58 135

原创 kotlin之foreach跳出循环

3.类似于continue,如果if语句为true,将会继续下一轮的forEach代码块。2.通过run语句,将会在if判断语句为true的时候跳出run代码块。1.创建函数跳出循环。

2024-06-12 23:47:11 484

原创 Java和Kotiln 数据实体类

data 包含了 get、set;@Keep 代码混淆;Parcelable 自动生成(见下图)Kotlin 实体类(序列化 和get、set和json数据转换)Java 实体类(序列化 和get、set和json数据转换)引入第三方插件:fasterjson、lombok。

2024-06-12 23:44:39 135

原创 Kotlin+coroutine+room+mvvm

1.接入ROOM,使用annotationProcessor 报错,换成kapt 即可,使用Room构建数据库出现RoomDatabase_Impl does not exist问题;3.学习sql语句,了解Android sqllite 和其它数据库的不同,比如,不具有日期查询,需要时间戳(long)比较大小。2.工具sqlitestudio-2.3.3 ,需要三个文件一起才可以打开db文件,预览数据库;三、ViewModel类。四、Activity类。二、数据库相关类定义。

2024-06-12 23:42:42 177

原创 Kotlin中的枚举注释类型

因为我无法访问例如 季节冬天在Kotlin中,最好使用enum class。在Kotlin中转换@IntDef和@StringDef用法时遇到很多问题。在Java中,我可以定义枚举注释类型(从此处开始)使用此工具时出现问题(使用IDE进行直接转换)此代码的Kotlin版本是什么?

2024-06-12 23:35:14 164

原创 Kotlin 的锁和多线程同步

作为结论,在 Kotlin 上最好用的线程同步方案首推协程。

2024-06-12 23:09:55 864

原创 Android 信号 (signal)

当进程唤醒或者淍度后获取CPU,则会从内核态转到用户态时检测是否有signal等待处理,处理完,进程会把相应的末决信号从链表中去掉。上述的31的信号为非实时信号,其他的信号32-64 都是实时信号。•不可靠信号:也称为非实时信号,不支持排队,信号可能会丢失,比如发送多次相同的信号,进程只能收到一次。Linux系统共定义了64种信号,分为两大类:可靠信号与不可靠信号,前32种信号为不可靠信号,后32种为可靠信号。•可靠信号:也称为实时信号,支持排队,信号不会丢失,发多少次,就可以收到多少次。

2024-06-09 17:33:17 831

原创 待指定线程执行完再执行某个线程的方法

调用threadA.join()时,main线程会挂起,等待threadA执行完毕返回后再执行,到执行threadB.join()时再挂起,待threadB执行完毕返回继续执行main。1.main线程中先调用threadA.join() ,再调用threadB.join()实现A->B->main线程的执行顺序。使用场景:多线程数据计算时需要先分几个线程计算第一步骤的数据,再合并一个线程计算第二步。使用场景:多线程计算数据,等待全部线程执行完阶段一的工作之后,再执行后面的阶段工作。

2024-06-02 21:16:14 169

原创 Java中如何确保在多线程情况下,所有线程都完成再继续执行任务

在以上示例代码中,当每个 SQL 查询任务执行完毕后都将 CountDownLatch 计数器减 1,当计数器减为 0 时,主线程的 await() 方法返回,程序继续执行后面的逻辑,汇总所有 SQL 查询结果并进行处理。在主线程中,调用 CountDownLatch 的 await() 方法在所有 SQL 查询任务执行完成前阻塞线程,直到计数器减为 0 时,所有任务都已经执行完成可以继续往下执行,此时可以对查询结果进行汇总处理。一个简化的序列图,展示了线程池中的任务是如何执行的。参数表示超时时间的单位。

2024-06-02 21:10:39 1566

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关注的人

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