
Android
文章平均质量分 52
晒干的老咸鱼
摸爬滚打多年的IT码农
展开
-
RecycleView结合ItemTouchHelper实现拖动排序
最近项目中需要实现对某一类条目进行拖动排序功能,实现技术方案就是利用ItemTouchHelper绑定RecyclerView、ItemTouchHelper.Callback来实现UI更新,并且实现动态控制是否开启拖动功能。其中,ItemTouchHelper是Google在androidx包中添加的,其于RecyclerView配合可以比较容易地实现这个功能。3、初始化RecycleView,并绑定ItemTouchHelper。2、实现ItemTouchHelper.Callback。原创 2024-02-22 20:57:11 · 829 阅读 · 0 评论 -
Android使用shape定义带渐变色的背景
渐变角度,仅用于线性渐变。必须是[0-315]范围内45的倍数。在drawable目录下创建文件bg_gradient.xml。type : linear 直线。angle 180 从右往左。angle 270 从上往下。angle: 0 从左到右。angle 90 从下往上。angle表示渐变角度。原创 2024-02-19 20:01:05 · 807 阅读 · 0 评论 -
AndroidStudio升级到2022.3.1 Giraffe之后,JDK使用17出现module java.base does not “opens java.io“ to unnamed mod
module java.base does not “opens java.io“ to unnamed mod原创 2023-09-05 16:58:22 · 3240 阅读 · 1 评论 -
xposed 的基本使用
xposed的使用转载 2023-02-22 09:18:59 · 1933 阅读 · 0 评论 -
如何xposed hook 带“壳“的app
xposed hook加固的apk转载 2023-02-22 09:12:17 · 933 阅读 · 0 评论 -
error: attribute android:requestLegacyExternalStorage not found.error: failed processing manifest.
Android问题原创 2023-02-16 09:07:44 · 6975 阅读 · 0 评论 -
Android程序安全系统和一键Root
Android系统安全和一键Root转载 2023-02-08 14:42:17 · 887 阅读 · 0 评论 -
Android应用如何获取System权限和root权限
Android应用如何获取System权限原创 2023-02-08 11:00:22 · 7051 阅读 · 0 评论 -
Android权限分类和详细介绍
Android权限详细介绍原创 2023-02-03 15:59:48 · 3246 阅读 · 0 评论 -
Android将Library工程打成aar包时问题汇总
Android打aar包原创 2023-01-16 16:57:52 · 941 阅读 · 0 评论 -
Android进行代码混淆
Android代码混淆转载 2023-01-16 11:32:55 · 2299 阅读 · 1 评论 -
bulkTransfer发送数据丢包
bulkTransfer发送数据丢包原创 2022-11-21 15:02:26 · 1101 阅读 · 0 评论 -
android10系统手机获取IMSI报错:The user 10116 does not meet the requirements to access device identifiers
Android10原创 2022-09-30 16:20:19 · 3194 阅读 · 0 评论 -
AndroidStudio将library项目导出为jar包
AndroidStudio导出jar包原创 2022-08-01 16:42:04 · 1520 阅读 · 0 评论 -
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag原创 2022-07-21 14:12:30 · 4490 阅读 · 0 评论 -
ReactContextBaseJavaModule getCurrentActivity 返回空问题
ReactContextBaseJavaModule getCurrentActivity 返回空问题转载 2022-07-21 13:57:04 · 690 阅读 · 0 评论 -
socket failed: EPERM (Operation not permitted) 解决方法
记录socket原创 2022-07-12 09:28:35 · 8929 阅读 · 2 评论 -
Android EditText接收扫码枪输入,有时缺位,有时出现两次回车
EditText,外接扫码枪原创 2022-07-04 16:44:39 · 3196 阅读 · 0 评论 -
Android焦点控制和键盘弹出
Android焦点控制和键盘控制原创 2022-06-28 15:02:07 · 3056 阅读 · 0 评论 -
部分Android8.0以上机型RelativeLayout出现绿色边框解决办法
版本适配原创 2022-06-28 11:30:02 · 1412 阅读 · 1 评论 -
Android apk多渠道打包工具,支持V1和V2签名的apk,不破坏原有签名
该部分内容除了用来进行打渠道包以外,还可以用来给apk进行二次签名,只是写入的渠道信息变成二次签名信息而已。本文只是讲解具体的实现思路,不会进行详细的分析,因为网上关于V1和V2签名的文章太多了,这里不赘述了。V1签名的apk已经有很多人写过分析了,主要是对META-INF目录进行操作,因为V1签名的apk除了该目录外,别的文件都是被保护的,只要进行了修改,那么就会破坏原有签名,所以对于V1签名的apk主要是在META-INF目录下写入渠道信息,这里简单的创建一个新文件,渠道名称为文件名..原创 2020-09-27 14:15:52 · 3473 阅读 · 1 评论 -
Android删除掉第三方jar包中的部分.class文件然后重新打包成jar包的方法
1、将jar包文件直接解压,在解压后的文件夹中找到要删除的.class文件并删除;2、将步骤1做完之后,cd到删除后的文件夹的根目录,然后执行jar cvf xxxx.jar .//命令,即可重新生成新的jar包xxx.jar为重新命名的jar包名称,.//命令表示将当前目录下的所有目录的.class文件打进jar包...原创 2020-09-08 11:30:18 · 2292 阅读 · 0 评论 -
Cygwin下不能运行make的解决办法
本文参考自:https://blog.youkuaiyun.com/weixin_33682719/article/details/859266021、去https://ftp.gnu.org/gnu/make下载一个最新版本的make文件,比如make-4.2.1.tar.gz(使用gcc --version可以查看cygwin当前的gcc版本)2、在Cygwin使用命令gunzip make-4.2.1.tar.gz得到make-4.2.1.tar,使用命令tar xf make-4.2.1.tar得到解压文转载 2020-12-22 16:37:56 · 2544 阅读 · 0 评论 -
Cygwin ndk编译32位和64位的Android so库
cygwin的安装不在这里详细描述ndk使用android-ndk-r10c一:配置ndk环境变量1、首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:d:\Cygwin\home\Administrator\.bash_profile,(注意:我安装的时候我的home文件夹下面神马都没有,解决的办法:首先打开环境变量,把里面的用户变量中的HOME变量删掉,在d:\Cygwin\home文件夹下建立名为Administrato原创 2020-12-22 17:12:06 · 1550 阅读 · 0 评论 -
对已签名apk进行再次签名的方法如下
对于客户提供的已签名apk进行再次签名的方法如下:1、使用apktool工具,将原apk的签名进行删除:命令如下:apktool d test.apk2、对删除签名之后的文件夹进行再次打包,此时无签名,命令如下:apktool b test,此时在test目录下会有一个dist文件夹,dist下面的就是重新打包的apk;3、使用jarsigner对步骤2当中重新打包的apk进行签名,命令如下:jarsigner -verbose -keystore debug.keystore -sigfile ce原创 2020-09-08 10:39:45 · 7947 阅读 · 0 评论 -
如何区分apk是V1还是V2签名,以及验证
通过META-INF/.SF文件区分apk是V1还是V2签名的方法如下: 如果.SF文件抬头包含X-Android-APK-Signed: 2,则表明该apk是V1和V2混合签名; 如果.SF文件抬头不包含X-Android-APK-Signed: 2,则表明该apk是纯V1签名; 如果连.SF文件都没有,则表明该apk是纯V2签名; 验证办法: 1、该命令签名的apk为混合签名 java -jar apksigner.jar sig...原创 2020-09-08 10:49:55 · 4353 阅读 · 0 评论 -
Android查看apk的签名信息
第一步:将apk解压第二步:找到META-INF 下的.RSA文件第三步:在控制台上输入命令:keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看原创 2020-09-08 10:56:14 · 2669 阅读 · 0 评论 -
使用jenkins编译apk报错问题解决
之前项目可以正常在jenkins上构建,今天突然发现构建出错,问题如下:Could not determine the dependencies of task ':lint'.> Could not resolve all artifacts for configuration ':releaseUnitTestCompileClasspath'. > Could not resolve junit:junit:4.+. Required by: pr原创 2022-05-10 16:21:05 · 1889 阅读 · 0 评论 -
Android悬浮窗显示提示权限问题
最近在做一个项目,用到了悬浮窗,在Android7.0以上系统上,悬浮窗显示时提示权限异常,异常如下:permission denied for window type 2002问题原因:该应用没有获取显示在其他应用以上的权限解决办法:if(!Settings.canDrawOverlays(this)){//没有悬浮窗权限,跳转申请Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PE......原创 2022-04-27 19:17:27 · 3496 阅读 · 1 评论 -
Android动态加载之插件开发
本文转载自:Android动态加载之插件开发 | BruceFan's Blog动态加载可以用来进行插件开发,这些插件大概都是为了在一个主程序中实现比较通用的功能,使主程序具有可扩展性。实现原理是实现一套插件接口,把插件实现编成apk或dex,在运行时用DexClassLoader动态加载进来。预备知识:Android中的动态加载机制插件演示这里用了三个项目:PInterface:插件接口项目(只是接口的定义) PImplement:插件项目(实现插件接口,定义具体的功能) .转载 2022-04-20 16:56:46 · 314 阅读 · 0 评论 -
Android动态加载之免安装运行程序
本文说的关于动态加载的内容与之前一篇Android动态加载之插件开发有关系,本文要说的加载有两种:使用反射机制修改类加载器 使用代理的方式这两种方式都由各自的优缺点。技术介绍使用反射机制修改类加载器来实现动态加载Activity我们知道PathClassLoader是一个应用的默认加载器(而且它只能加载data/app/xxx.apk的文件),但是我们加载插件一般使用DexClassLoader加载器,所以开始的时候,每个人都会很容易想到使用DexClassLoader来加载Activi转载 2022-04-20 16:45:33 · 1859 阅读 · 0 评论 -
Android中apk的加固原来解析和实现
本文转载自:Android中的Apk加固原理解析和实现 | BruceFan's Blog原理解析下面看一下Android中加壳的原理:在加固过程中需要三个对象:需要加密的APK(源程序APK) 壳程序APK(负责解密APK工作) 加密工具(将源APK进行加密和壳程序的DEX合并)主要步骤用加密算法对源程序APK进行加密,再将其与壳程序APK的DEX文件合并生成新的DEX文件,最后替换壳程序中的原DEX文件即可。得到新的APK也叫做脱壳程序APK,它已经不是一个完整意义上的转载 2022-04-20 16:40:51 · 727 阅读 · 0 评论 -
带Fragment的Activity生命周期
Fragment的生命周期如下:1.界面打开onCreate() 方法执行!onCreateView() 方法执行!onActivityCreated() 方法执行!onStart() 方法执行!onResume() 方法执行!2.按下主屏幕键/锁屏onPause() 方法执行!onStop() 方法执行!3.重新打开onStart() 方法执行!onResume() 方法执行!4.按下后退键onPause() 方法执行!onStop() 方法执行!onDestr原创 2022-04-19 15:15:11 · 391 阅读 · 0 评论 -
Android 内存优化(四) —— 未取消注册或回调导致内存泄露
未取消注册或回调导致内存泄露比如我们在 Activity 中注册广播,如果在 Activity 销毁后不取消注册,那么这个刚播会一直存在系统中,同上面所说的非静态内部类一样持有 Activity 引用,导致内存泄露。因此注册广播后在Activity 销毁后一定要取消注册。public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInst原创 2022-04-08 09:34:10 · 3120 阅读 · 1 评论 -
Android 内存优化(三) —— 非静态内部类导致内存泄露
非静态内部类导致内存泄露非静态内部类(包括匿名内部类)默认就会持有外部类的引用,当非静态内部类对象的生命周期比外部类对象的生命周期长时,就会导致内存泄露。非静态内部类导致的内存泄露在 Android 开发中有一种典型的场景就是使用 Handler ,很多开发者在使用 Handler 是这样写的:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bun原创 2022-04-08 09:31:53 · 450 阅读 · 0 评论 -
Android 内存优化(二) —— 静态变量导致内存泄露
静态变量导致内存泄露静态变量存储在方法区,它的生命周期从类加载开始,到整个进程结束。一旦静态变量初始化后,它所持有的引用只有等到进程结束才会释放。比如下面这样的情况,在 Activity 中为了避免重复的创建 info ,将 sInfo 作为静态变量:public class MainActivity extends AppCompatActivity { private static Info sInfo; @Override protected void onCr原创 2022-04-07 16:47:22 · 2397 阅读 · 0 评论 -
Android 内存优化(一) —— 单例导致内存泄露
单例导致内存泄露单例模式在 Android 开发中会经常用到,但是如果使用不当就会导致内存泄露。因为单例的静态特性使得它的生命周期同应用的生命周期一样长,如果一个对象已经没有用处了,但是单例还持有它的引用,那么在整个应用程序的生命周期它都不能正常被回收,从而导致内存泄露。public class AppSettings { private static AppSettings sInstance; private Context mContext; private A原创 2022-04-07 16:44:48 · 3316 阅读 · 0 评论 -
Android Toast的几种使用方式
Toast是Android中常用的组件,下面介绍下Toast使用的几种方式和注意事项。Toast的使用方式简单来说有下面五种:1、默认的显示// 第一个参数:当前的上下文环境。可用getApplicationContext()或Activity的context // 第二个参数:要显示的字符串。也可是R.string中字符串ID // 第三个参数:显示的时间长短。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短),也可以使用毫秒如2000ms Toast原创 2022-04-07 15:19:44 · 20023 阅读 · 3 评论 -
Android中的Apk的加固(加壳)原理解析和实现
本文转载自:Android中的Apk的加固(加壳)原理解析和实现 - roccheung - 博客园一、前言今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理。现阶段。我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到native层,但是这都是治标不治本。反编译的技术在更新,那么保护Apk的技术就不能停止。现在网上有很多Apk加固的第三方平台,最有名的应当属于:爱加密转载 2022-04-06 15:46:42 · 5033 阅读 · 2 评论 -
Fiddler手机抓包
本文转载自:Fiddler手机抓包 - 机智的老猫咪 - 博客园Fiddler是一款安装在PC上的抓包软件,它不仅可以对pc上的程序进行抓包,也可以对手机上的程序进行抓包,下面说下抓取手机程序的步骤一、PC端设置1、PC上Fiddler抓取Https报文设置:由于手机上的应用很多涉及到个人信息,都是采用的安全的HTTPS加密过,而fiddler默认只捕获http会话而不抓取HTTPS报文,导致打开fiddler后就打不开https网页,所以我们要抓取手机上的程序需要先对Fiddler设置HT转载 2022-04-02 11:20:27 · 20409 阅读 · 3 评论