残风乱了温柔
码龄7年
  • 237,541
    被访问
  • 43
    原创
  • 20,176
    排名
  • 41
    粉丝
关注
提问 私信

个人简介:追求卓越,成功便会在不经意间追上你

  • 加入CSDN时间: 2015-03-28
博客简介:

残风乱了温柔的博客

查看详细资料
  • 4
    领奖
    总分 494 当月 12
个人成就
  • 获得101次点赞
  • 内容获得56次评论
  • 获得496次收藏
创作历程
  • 7篇
    2022年
  • 34篇
    2021年
  • 38篇
    2020年
  • 11篇
    2019年
  • 32篇
    2018年
成就勋章
TA的专栏
  • Android
  • Android基础
    76篇
  • Jetpack
    1篇
  • 开源框架
    15篇
  • FrameWork
  • 性能优化
  • Gradle
    2篇
  • NDK
  • Java
  • Java基础
    9篇
  • 设计模式
  • Kotlin
  • Kotlin基础
    3篇
  • 协程
  • 网络通信
    9篇
  • Flutter
    1篇
  • Linux
    6篇
  • 算法与数据结构
兴趣领域 设置
  • Java
    java
  • Android
    android
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java 核心基础知识梳理

一、泛型二、注解三、并发编程四、Java虚拟机原理java注解的详细使用(APT、插桩、反射)_摸鱼小能手啊的博客-CSDN博客五、反射与类加载六、动态代理
原创
发布博客 2022.04.11 ·
204 阅读 ·
0 点赞 ·
0 评论

Linux Shell脚本参数传递的2种方法

前言平时会遇到很多脚本都有参数选项,类似:./test.sh -f config.conf -v --prefix=/home这种脚本怎么写呢?一、Shell 特殊参数解释首先来看几个特殊变量:$0, $#, $*, $@, $?, $$, $_示例1:新建一个test.sh的文件#!/bin/bashecho $0 # 当前脚本的文件名(间接运行时还包括绝对路径)。echo $n # 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是.
转载
发布博客 2022.03.18 ·
659 阅读 ·
2 点赞 ·
0 评论

Linux Shell-通过expect工具实现脚本的自动交互(二)

一、 Shell Here Document(内嵌文档/嵌入文档)Shell 还有一种特殊形式的重定向叫做“Here Document”,目前没有统一的翻译,你可以将它理解为“嵌入文档”“内嵌文档”“立即文档”。所谓文档,就是命令需要处理的数据或者字符串;所谓嵌入,就是把数据和代码放在一起,而不是分开存放(比如将数据放在一个单独的文件中)。有时候命令需要处理的数据量很小,将它放在一个单独的文件中有点“大动干戈”,不如直接放在代码中来得方便。1.1 Here Document 的基本用法为:
转载
发布博客 2022.03.18 ·
86 阅读 ·
0 点赞 ·
0 评论

Linux Shell脚本实现自动交互

一、先来说下解决的问题我要写一个给Apk文件进行V3签名的Shell脚本来实现自动化,避免每次手动输入大量命令的问题。实现过程中主要的两个点,第一个是部分命令执行后需要输入密码,如何实现自动化;第二个是Apk文件的地址需要以参数形式传入,Shell脚本中如何传递命令行参数。下面围绕问题开始展开。二、前置知识准备1.Linux Shell脚本基础知识:(可以自己再查查)Linux学习教程,Linux入门教程(超详细)htt...
原创
发布博客 2022.03.18 ·
1707 阅读 ·
0 点赞 ·
0 评论

Linux Shell-通过expect工具实现脚本的自动交互(一)

一、安装expect工具expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 其交互流程是:spawn启动指定进程 -> expect获取指定关键字 -> send想指定进程发送指定指令 -> 执行完成, 退出.由于expect是基于tcl的, 所以需要确保系统中安装了tcl:# 检查是否安装了tcl:[root@localhost ~]# whereis tcltcl: /usr/lib64/t.
原创
发布博客 2022.03.18 ·
256 阅读 ·
0 点赞 ·
0 评论

Android 常用SDK整理总结

V1.0 更新于2022.02.17整理一些常用的SDK,方便新建项目的时候使用,定期更新,欢迎大家给予补充一、官方的SDK material 'com.google.android.material:material:1.2.1' JetPack组件库 Lifecycle Viewmodel Livedata DataBinding / ViewBinding Navigation WorkM...
原创
发布博客 2022.02.17 ·
1225 阅读 ·
0 点赞 ·
0 评论

数据加密 三种密钥交换算法详解(RSA& DHE& ECDHE)

一、RSA密钥交换算法RSA算法流程文字描述如下:(1)任意客户端对服务器发起请求,服务器首先发回复自己的公钥到客户端(公钥明文传输)。(2)客户端使用随机数算法,生成一个密钥S,使用收到的公钥进行加密,生成C,把C发送到服务器。(3)服务器收到C,使用公钥对应的私钥进行解密,得到S。(4)上述交换步骤后,客户端和服务器都得到了S,S为密钥(预主密钥)。图示如下:SSL协议中,服务器发送的公钥在SSL中是通过certificate报文发送的,certifica...
转载
发布博客 2022.01.17 ·
885 阅读 ·
1 点赞 ·
0 评论

网络数据抓包 整理总结

在开发过程中,我们经常会碰到需要抓取网络接口请求数据来进行调试或者接口对接的情况,有时候某些金融行业的前端或者APP过检也会对APP进行抓包分析,所以在这里简单做一下整理,方便日后复习。一、常用的抓包工具抓包工具有很多,小到最常用的web调试工具Firebug,达到通用的强大的抓包工具Wireshark。为什么使用 Fiddler?原因如下:(1) Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且 Firebug 常常是需要“无刷新修改.
原创
发布博客 2021.09.29 ·
365 阅读 ·
0 点赞 ·
0 评论

Android 缩减、混淆处理和优化应用APK

本文主要就d8、Proguard、R8 等工具实现对APK代码的缩减,优化和混淆做相关记录。一、概念梳理d8:是一种命令行工具,Android Studio 和 Android Gradle 插件使用该工具来将项目的 Java 字节码编译为在 Android 设备上运行的 DEX 字节码,该工具支持您在应用的代码中使用 Java 8 语言功能。d8还作为独立工具纳入了 Android 构建工具 28.0.1 及更高版本中:android_sdk/build-tools/version/d8...
原创
发布博客 2021.09.07 ·
89 阅读 ·
0 点赞 ·
0 评论

Android 加载流程(打包与启动)

移动安全的学习离不开对Android加载流程的分析,包括Android虚拟机,Android打包,启动流程等...这篇文章 就对Android的一些基本加载进行学习。1|0Android虚拟机Android开发中接触的是与Java虚拟机类似的的Dalvik虚拟机和ART虚拟机1|1Dalvik虚拟机什么是Dalvik虚拟机Dalvik虚拟机简称Dalvik VM或者DVM,是Google专门为Android平台开发的虚拟机,它运行在Android运行库中,需要注意的是DVM并不是一.
转载
发布博客 2021.09.07 ·
74 阅读 ·
0 点赞 ·
0 评论

Android 安全攻防战,反编译与混淆技术完全解析(上)

Android安全攻防战,反编译与混淆技术完全解析(上)之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值得骄傲的事情。不过单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能,可能平常不太会用得到,但是一旦真的需要用到的了,而你却不会的话,那就非常头疼了。另外既然别人可以反编译程序,我们当然有理由应该对程序进行一定程度的保护,因此代码混淆也是我们必须要掌握的一项技术。那么最近的两篇文章我们就围绕反编译和混淆这两个主题来进行一次完全解析。一、准备工作我们都知道,Andr
转载
发布博客 2021.09.07 ·
69 阅读 ·
0 点赞 ·
0 评论

Java 编译时类型和运行时类型

编译时类型和运行时类型:Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法(意思是说:编写代码时,只能调用父类中具有的方
转载
发布博客 2021.08.18 ·
340 阅读 ·
1 点赞 ·
0 评论

Android 10、11 存储完全适配!(建议收藏)

1、存储基本知识先来看看存储区域划分:image.png其中,以下目录无需存储权限即可访问:1、App自身的内部存储2、App自身的自带外部存储-私有目录剩下的都需要申请存储权限,Android 10.0前后对于存储作用域访问的区别就体现在如何访问剩余这些目录内的文件。重点在自带外部存储之共享存储空间和其它目录2、Android 10.0 之前访问方式继续细分为Android 6.0 之前和之后。Android 6.0 之前访问方式Android 6.0
转载
发布博客 2021.08.14 ·
1573 阅读 ·
11 点赞 ·
5 评论

Android Android 10、11 分区存储适配组件库

先贴一下仓库的访问地址:https://github.com/xuetaotao/imagepicker,欢迎大家提意见使用和star一、存储基本知识先来看看存储区域划分:image.png其中,以下目录无需存储权限即可访问:1、App自身的内部存储2、App自身的自带外部存储-私有目录剩下的都需要申请存储权限,Android 10.0前后对于存储作用域访问的区别就体现在如何访问剩余这些目录内的文件。重点在自带外部存储之共享存储空间和其它目录详见:https://.
原创
发布博客 2021.08.14 ·
284 阅读 ·
1 点赞 ·
1 评论

Android 发布Github项目到Maven仓库

一、相关专业术语说明Maven:全名Apache Maven,是Apache开发的一个软件项目管理和项目自动构建工具 Maven仓库:存放Maven库资源的地方,可以是远程Maven服务器,也可以是本地Maven服 POM:Project Object Model,一个用来描述项目信息的xml文件,以xml节点的形式记录项目所属分组,项目名称,项目版本,依赖类库等信息 JCenter:一个由 bintray.com维护的Maven仓库。Bintray其实只是一个网站,他们负责维护JCenter这个
原创
发布博客 2021.08.13 ·
189 阅读 ·
0 点赞 ·
2 评论

Android Targeting R+ requires the resources.arsc of installed APKs to be stored uncompressed and al

一、问题描述:最近Apk适配了Android 11版本,在使用完乐固线上加固后,通过adb命令安装测试,安装失败,报出如下错误:Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte bou
原创
发布博客 2021.08.06 ·
2999 阅读 ·
2 点赞 ·
2 评论

Android RxJava生命周期管理解决方案整理

一、为什么要做生命周期管理?Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception { //TODO } }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .
原创
发布博客 2021.06.03 ·
435 阅读 ·
0 点赞 ·
2 评论

Android Lifecycle详解&原理分析

一、概述在过去的谷歌IO大会上,Google官方向我们推出了Android Architecture Components,其中谈到Android组件处理生命周期的问题,向我们介绍了Handling Lifecycles。同时,如何利用android.arch.lifecycle包提供的类来控制数据、监听器等的 lifecycle。同时,LiveData与ViewModel的 lifecycle 也依赖于Lifecycle框架。二、Lifecycle简介&基础使用为...
转载
发布博客 2021.06.03 ·
379 阅读 ·
0 点赞 ·
0 评论

Android AutoDispose的使用及原理分析

概述在我的上一篇文章 解决RxJava内存泄漏(前篇):RxLifecycle详解及原理分析 中,详细阐述了如何通过使用 RxLifecycle 解决Android开发中RxJava的可能会导致的内存泄漏问题;RxLifecycle 内部的实现原理;在文章的最后,我提到了 AutoDispose 这个库,这个库同样可以解决Android生命周期组件导致的RxJava的内存泄漏情况。但是不得不考虑的是,目前国内的Android开发圈子中,RxLifecycle已经逐渐为人所熟知,包括著名的一些开
转载
发布博客 2021.06.03 ·
641 阅读 ·
1 点赞 ·
0 评论

Android RxLifecycle的使用及原理分析

一、介绍RxLifecycle目的:解决RxJava使用中的内存泄漏问题。例如,当使用RxJava订阅并执行耗时任务后,当Activity被finish时,如果耗时任务还未完成,没有及时取消订阅,就会导致Activity无法被回收,从而引发内存泄漏。为了解决这个问题,就产生了RxLifecycle,让RxJava变得有生命周期感知,使得其能及时取消订阅,避免出现内存泄漏问题。二、使用首先来介绍下RxLifecycle的使用。1.添加依赖 implementation 'com
转载
发布博客 2021.06.03 ·
267 阅读 ·
0 点赞 ·
2 评论
加载更多