- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 Android多线程实现方式
https://blog.csdn.net/qq_41648631/article/details/103045252
2021-04-01 00:36:08 167
原创 设计模式--单例模式
1、单例模式定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。2、单例模式实现public class Singleton { /* The volatile keyword ensures that multiple threads * handle the uniqueInstance variable correctly when it * is being initialized to the Singleton instance.
2021-03-31 17:33:43 120
原创 Android魔改大杂烩
1、小米6刷机小米6刷机包下载:https://www.jkmeng.cn/tag/xiaomi-6线刷教程:http://www.miui.com/shuaji-393.html1、如需解锁,则bootloader解锁2、关机状态下,同时按住音量下+电源键 进入Fastboot模式将手机USB连接电脑。3、线刷包下载完成后解压,打开线刷包文件夹,复制地址栏地址4、下载通用刷机工具:MiFlash2018-5-28-0,安装并打开,将复制的地址栏地址复制到输入框中,点击“加载设备”,.
2021-03-19 12:28:52 649
原创 第七课 Android中的注解
1、@Deprecated表示不鼓励使用此构造函数、字段、本地变量、方法、包、参数和类等,通常因为它很危险,或者存在更好的替代方案。2、@SuppressLintLint是一个静态检查器,围绕Android项目的正确性、安全性、性能、可用性以及可访问性进行分析检查,检查对象包括XML资源、位图、ProGuard配置文件、源文件甚至编译后的字节码。针对这个检查器,可以使用@SuppressLint标注忽略指定的警告。3、@Override表示当前方法的定义将覆盖超类中的方法4、注解
2021-03-16 21:38:24 290
原创 第六课 Binder的使用及上层原理
1、Binder含义直观角度:Android中的一个类,实现了IBinder接口 IPC角度:Android中一种跨进程通信方式 一种虚拟的物理设备,设备驱动是/dev/binder Android Framework角度:ServiceManager连接各种Manager(ActivityManager、WindowManager等)和相应ManagerService的桥梁 应用层角度:是客户端和服务端进行通信的媒介,当bindService的时候,服务端会翻译一个包含了服务端业务调用的Bin
2021-03-12 16:23:37 312
原创 第五课 序列化接口
1、序列化接口接口 特点 适用场景 Serializable Java中的序列化接口,使用简单,但是开销很大。 将对象序列化到存储设备或将对象序列化后通过网络传输时,用Serializable较简单。 Parcelable Android中的序列化方式,使用稍麻烦,但效率很高。 主要用于内存序列化,性能好。 2、Serializable接口Serializable是一个空接口,为对象提供标准的序列化和反序列化操作。实现Serializable接口示例:
2021-03-11 17:41:46 2696 4
原创 第四课 Android中的多进程
多进程第一种情况:两个应用之间,也是进程与进程之间的关系。本节不多讨论。第二种情况:在一个应用中开启多进程。开启多进程模式开启方式:给四大组件(Activity、Service、Receiver、ContentProvider)在AndroidMenifest中指定android:process属性。示例:SecondActivity进程名:com.syy.note:remoteThirdActivity进程名:com.syy.note.remote<activity
2021-03-10 21:12:37 114
原创 第三课 IntentFilter的匹配规则
<intent-filter> <action android:name="com.syy.note.a"/> <action android:name="com.syy.note.b"/> <category android:name="com.syy.category.c"/> <category android:name="com.syy.category.d"/> <data android:.
2021-03-09 21:57:51 120
原创 第二课 Activity的启动模式
1、Activity的启动模式standard标准模式:每次启动Activity均创建一个新的实例;singleTop栈顶复用模式:如果新Activity已经位于任务栈栈顶,则此Activity不会被重新创建,通过回调onNewIntent方法取出当前请求的信息。singleTask栈内复用模式:一种单实例模式;启动该Activity时,先寻找是否存在它的任务栈(TaskAffinity参数配置的栈名):若不存在,则重新创建一个任务栈,再创建Activity实例放进去; 若
2021-03-09 21:35:21 99
原创 第一课 Activity的生命周期
1、典型情况下的Activity生命周期onCreate->onStart->onResume->onPause->onStop->onDestroy,当用户在onStop之后返回原Activity时调用onStart2、异常情况下的Activity生命周期2.1 资源相关的系统配置发生改变导致Activity被杀死并重新创建系统配置发生改变(如横屏变竖屏):一次调用onPause、onStop、onDestroy,在onStop之前调用onSaveI...
2021-03-09 20:37:34 80
原创 supervisor进程守护
supervisorsupervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。安装supervisor$ sudo pip install supervisor配置文件安装完成后,会在etc文件夹
2020-10-12 12:42:49 210
原创 Android Hook笔记
一、Hook类型Hook可分为inlineHook、gotHook等二、详解2.1 inlineHook代表:Frida在C层的Hook原理:修改方法的指令,将第一条指令改为:jump xxx2.2 gotHook代表:爱奇艺的开源XHook原理:so库加载完成后,会生成一张表,例如libc.so,加载完成后,生成的表为方法名、方法地址的对应关系,Hook原理即修改该对应关系表,将要Hook的方法对应的地址改为自己的地址。2.3 Native化Hook代表:Xpose
2020-09-08 17:33:12 294
原创 Springboot学习笔记2——日期转换
1、日期格式java.util.Date日期格式为:年月日时分秒 java.sql.Date日期格式为:年月日java.sql.Time日期格式为:时分秒 java.sql.Timestamp日期格式为:年月日时分秒毫秒(微秒、纳秒)2、Date格式//获取当前时间//Date类型日期格式:Fri Apr 08 21:18:35 CST 2020Date now = new Date();//获取11天前的Date格式时间Date startDate = DateUti.
2020-05-11 15:48:19 624
原创 Springboot学习笔记1——定时任务
1、开启支持,为启动类添加注解@SpringBootApplication@EnableSchedulingpublic class Application{ public static void mian(String[] args){ SpringApplication.run(Application.class,args); }}2、定时任务类型2.1 固定周期执行//表示 每隔 5000 毫秒执行一次@Scheduled(fixe..
2020-05-11 14:41:51 176
原创 linux服务器后台运行Python程序
后台运行python程序命令:nohup python -u test.py > test.log 2>&1 &其中,最后一个“&”表示后台运行程序“nohup” 表示程序不被挂起“python”表示执行python代码“-u”表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)...
2020-05-07 15:15:36 594
原创 AS gradle版本升级3.3.2-3.5.2
一、问题Android Studio gradle版本升级至3.5.2之后,发现strcmp函数报错,该函数没有做判空处理,比较对象是当前APP的签名MD5值。后来发现使用绿色箭头run直接安装至手机时,会报错,而使用assemble打包apk后,使用adb安装,则不会报错,说明在使用run安装时,该apk没有进行签名。二、解决对strcmp方法做判空处理即可。注意:使用...
2020-02-20 17:43:06 980
原创 git学习笔记
1、push命令:git push origin branch_name若此时远程仓库有提交,本地也有提交,则会报错,需先git pull,再push;若远程提交和本地提交修改了同一个文件,则涉及到提交谁覆盖谁的问题,需执行:git pull --rebase origin branch_name这条指令的意思是把远程仓库中的更新合并到本地库中,--rebase的作用是取消掉本地库...
2019-12-03 17:48:32 114
原创 Android手机cpu架构详解
最近学习IDA动态调试so文件,过程中必须保证android_server和IDA版本和位数一致,也涉及手机运行cpu的位数,即32位还是64位,也因此牵涉到手机的cpu架构,简单做下总结。查看手机cpu架构命令:adb shellsu//查看cpu信息cat /proc/cpuinfo序号 cpu架构 说明 1 AArch64 ARM64架构 ...
2019-11-27 15:43:24 2102
原创 sql笔记
一、简介SQL 是用于访问和处理数据库的标准的计算机语言。数据库类型包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。二、基础用法1、linux中连接mysql,访问权限查询和设置//linux中连接mysqlmysql -h host -P port -u user_name -p password//切换数据库use db_...
2019-11-19 10:45:54 196
原创 Android studio中build.gradle文件格式解析_未完待续
与Eclipse不同,Android Studio是采用Gradle来构建项目的。Gradle 是一个非常先进强大的项目构建工具,它使用了一种基于 Groovy 领域的特定语言(DSL)来声明项目设置,摒弃了基于 XML(如 Ant 和 Maven)的各种繁琐的配置,接下来我们一起探讨 Android Studio 中强大的项目构建工具 Gradle。一、简介Android...
2019-11-13 11:27:39 642
原创 C语言 条件编译
一、内容if #if #ifdef #ifndef #if defined #if !defined二、ifif是C语言中的关键字,它根据表达式的计算结果来决定是否执行该分支的语句,它的每个分支都是编译了的。#define A 0 //把A定义为0if (A > 1) printf("A > 1"); //编译器编译该语句,但因为A == 0...
2019-11-12 17:03:07 273
原创 Mysql如何避免插入重复数据
一、问题需求:向mysql数据库中插入数据时,首先判断库中是否有该数据,若有,则放弃,若无,则插入。Data data = dataMapper.getByDataId(dataId);if(data == null){ dataMapper.insert(data1);}问题:并发请求时存在以下问题:1、A线程查询数据data1,发现无,则插入data1;2、A...
2019-10-29 15:38:34 509
原创 SpringBoot学习笔记之_Mysql和Redis事务
一、Mysql和Redis报错机制当在mysql中添加已经存在的数据时:dataRepository.save(data);即报错:Duplicate entry 'data' for key 'xxx'。当在redis中添加已经存在的数据时:redisService.setValue(data);不会添加内容,也不会报错。二、给mysql和redis数据操作添加...
2019-10-22 11:53:22 752
原创 https通信流程
一、SSL协议简介随着网络通信和电子商务等服务和资源进入人们的日常生活,人们在享受网络带来的便利的同时,面临着各种各样的安全隐患。 我们经常接触到的就有邮箱登录,网上购物,电子银行等等,大部分均基于 HTTP 协议。 但HTTP[RFC2616]最初应用于INTERNET时没有使用密码,安全性很低,因此随着人们对安全性需求的提高,为用户提供面向通道安全的HTTPS协议应运而生。 HTT...
2018-11-22 16:49:29 847
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人