avatar
文章
71
标签
53
分类
24

首页
归档
标签
分类
图库
友人
Jamie793’ S Blog
搜索
首页
归档
标签
分类
图库
友人

Jamie793’ S Blog

【Android】SwipeRefreshLayout的使用
发表于2021-07-07|程序设计Android
首先是xml代码 123456789101112<android.support.v4.app.widget.SwipeRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/swipeLayout"> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/seartext" /> </android.support.v4.app.w ...
【Android】CardView的使用
发表于2021-07-07|程序设计Android
123456789101112<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" card_view:cardBackgroundColor="#fff" 定义卡片背景颜色 android:paddingLeft="10dp" android:paddingRight="10dp" card_view:cardCornerRadius="20dp" 设置卡片圆角>< ...
【Android】水波纹的使用
发表于2021-07-07|程序设计Android
全文转载自:https://www.jianshu.com/p/13eb4574e988 前言 水波纹效果从Android5.0就已经出来了,基本的使用相信大家都知道了,这里多谈一些相对深层次的使用: 1、基本使用 2、水波纹效果与布局绘制之间的问题 3、长按水波纹扩散效果 4、Button点击的水波纹效果 基本使用 系统自带水波纹实现方式 有界水波纹 1android:background="?android:attr/selectableItemBackground" 无界水波纹 以控件宽高中最大的数值作为水波纹效果所在正方形的边界进行绘制 1android:background="?android:attr/selectableItemBackgroundBorderless" 自定义水波纹实现方式 1234567891011121314151617181920212223242526272829303132333435无界水波纹<?xml version="1.0" encoding="utf-8&qu ...
【Android逆向】Android逆向之使用AndroidStudio4.0动态调试Smali
发表于2021-07-07|逆向分析Android逆向
前言 本来我也不想写这篇文章的,但我百度了各种坑后来得靠自己经验才得以解决。动态调试成功那一瞬间是真的很舒服才发现原来那么简单的事情被他们写的转载的那么复杂。所以今天我不得不写一个博客来描述此次动态调试的所有过程和方法以及遇到的坑。 工具准备 Apktool AndroidStudio DDMS 模拟器/手机 ADB SmaliIdea.jar插件 工具下载 反编译APK 把APK反编译成Smali我这里有两种方法 第一种:用Apktool直接反编译 第二种:用dex2jar后再baksmali 这里因为多dex的原因我就用第一种,以抖音为例子 更改APK调试模式 反编译了Smali后还没完还得把APK更改为调试模式 这里我模拟器用的MT管理器更改的你们也可以用其他可以编辑编译后xml的软件更改。打开AndroidManiFest.xml文件在Application标签中任意添加一个属性 android:debuggable="true" 然后保存重新签名安装,或者如果手机破解了签名验证的可以直接安装 以调试的方式打开APK 这里我以夜神模拟器为例子 12 ...
c++常对象和常函数
发表于2021-07-07|程序设计C++
对象和函数都带const修饰符即是常对象与常函数 定义常对象 const Class class; 定义常函数 void fun() const{ } 使用了常对象后对象里的任何值都不可以改变 常对象只能调用常成员函数,不能调用普通成员函数 (除了隐式调用析构函数和构造函数),常成员函数是常对象的唯一对外接口; 现在编译系统只检查函数的声明,只要发现调用了常对象的成员函数,而且该函数未被声明为const,编译阶段就报错; 常对象在被定义时需要被初始化;
C++中的cin
发表于2021-07-07|程序设计C++
c++中cin的作用是获用户键盘输入的字符 用法如下 using namespace std; char[] ch; cin >> ch; cout << ch; 首先是使用std命名空间然后创建一个char类型数组把输入的字符存入到数组里然后输出 cin还提供了两个get方法 第一个是cin.get() 第二个是cin.get(char) 这两个方法有啥区别呢? 第一个方法是获取一行的字符 另一个作用:可以让窗口一直保持不关闭 用法如下 using namespace std; char[] ch; ch = cin.get(); cout << ch; 一样使用std命名空间因为cin是在std命名空间的 使用cin或者cout都得导入iostream头文件 否则将会报错因为要用到流操作所以必须导入 另外还有一个cin.getline(chars,int)方法 这个函数看函数名就知道大概的意思了就是获取一行的字符存入chars数组中至于int呢就是他要写入的长度 比如我输入了一行文字长度总长度为10 然后我调用方法 cin.getline(cha ...
C++数据类型的转换
发表于2021-07-07|程序设计C++
数据类型转换的作用就是把不同的类型转换成相同的类型如把int转string或者string转int或者任意类型之间的相互转换 这里数据类型的转换分为几种 第一种初始化转换:就是初始化的时候就设置好他的值 如int a=123;char b=a; 第二种以{ }进行转换:初始化进行转换——列表初始化 int a=123; char b = {a}; 第三种表达式中的转换:进行变量之间的运算进行转换 short a=1; int b=a+2; 第四种传递参数时的转换:由c++函数原型控制 第五种强制类型转换: int a=10; 把int转成short short b=(short)a; short c=short(a); 将short 转换成long static_cast ©;
C++类
发表于2021-07-07|程序设计C++
我先讲一下new吧 我们的类其实说白了就是结构体的变种 结构体其实就是一种数据类型 我们的每一种数据都是需要内存分配的所以说类也是一种数据类型 嗯嗯 比如说有个class a; class a{}; 我们要引用这个类 我们一般定义数据是怎么定义 int num; 那么类其实也一样 类本身就是一种数据类型 所以我们可以用 类名+变量名的形式去声明 class a{}; a bianliang; new其实就是一种申请内存的方式 他会开辟一个新的内存空间 然后返回开辟的这个地址 我们就可以把东西放进去了 这时候我们的new会根据我们声明的类型开辟 类型大小的内存返回地址 然后在这个地址把类a放进去 最后赋值到bianliang上 class a{}; a bianliang; bianliang= new a(); 那么实际上我们这里的bianliang就是一个地址 我们在结构体里我们指向地址是什么操作 ->对吧a->name 函数是有类型的 执行函数的时候就要申请内存了 void占用4字节 void是空类型 不能返回的,能返回是因为这时候虽然为空类型 实际上分配了4个字节的大 ...
结构体与类的由来与指针及发展史
发表于2021-07-07|程序设计C++
但是往往很多情况下我们需要几种类型配套使用,就比如说你用变量描述一个人,这个人不止有int属性 如身高,体重为浮点型,名字为字符串,年龄为int 这时候我们就需要定一个一个新类型 结构体实际上和数组也差不多 只不过是不同类型 比如说一个结构体中有两个int一个char类型 那么他就会申请9个内存单元 因为int_2+char_1=4*2+1=9 分给两个int和chart 所以结构体的本身就是个地址 ide会根据你定义的结构体让你能指向他其中的元素 结构体a里面有name和age还有height三个元素,我们表层访问是不是(*a).name a是个地址,我们只需要指向其中的地址就可以,比如a->name 我们一般存东西都是往内存里存,所以a->name=""这种是成立的 如果有一百个人的信息怎么解决 用结构数组,然后很多时候我们需要用到一些特殊的变量——指针变量 指针变量是用于存地址用的变量 通常是变量类型后+*号声明 比如int * ;就是寸int类型变量的地址用的 既然指针是变量,那么肯定也有指针变量的地址 比如int **a; int_*就是用来存 ...
C++数组和指针
发表于2021-07-07|程序设计C++
int a[10]; 那么这个时候a就是这个数组首元素的地址 *+地址是取量,取地址中的量 &+变量 是取变量地址 然后定义变量的时候 int *a;这个时候a就是指针变量 指针变量只能用来存地址 指针变量本身也是有地址的 数组名本身就是数组首元素的地址 *(arp[2])获取数组第三个元素的数组值 指针数组只能存指针,就像是char不能存int一样 int a[10];表明了长度为10的int数组 数组的特点是可以把类型一样的数据放在一起不用频繁创建变量就比如一百个一样的变量只需要循环创建存入数组里而不用一个个复制粘贴修改大大减少了时间 数组的作用其实就是为了简化大量声明! 那数组的实质就是申请一个很大的内存,然后分给每一个元素 数组有这样一个特点 int a ,b;如果说a的地址是0000,b的地址是0004,这时候我们再声明一个int c;他的地址一定是0008吗,不一定的 内存又不是你一个应用在申请,你怎么知道别的应用没申请走 可能0008就被别人拿走了,c就是0012 但是数组是一下子把0-400全部拿下来了 然后一个int是四个字节,刚好就分配给100个元素 所以 ...
1…345…8
avatar
Jamie793
Welcome to here
文章
71
标签
53
分类
24
Contact Me
最新文章
MC(JE) 1.20.1源码层分析刷怪机制——解决无法刷怪问题2025-05-05
【单片机FreeRTOS】RTOS移植常见错误2024-11-06
【RTOS&FreeRTOS&嵌入式】基于STM32 的FreeRTOS内核剖析2023-09-03
【STM32&I2C(IIC)&Proteus】基于STM32的Proteus下I2C仿真2023-04-20
【ESP32 & Arduino】ESP32入门之环境安装2022-11-23
分类
  • CTF7
    • Crypto2
    • Reverse5
  • 其他16
    • Linux8
    • 软件配置5
    • 运营维护8
  • 单片机3
  • 嵌入式2
    • RTOS1
    • 单片机1
  • 未分类1
  • 程序设计44
    • Android7
    • C++12
    • Java10
    • PHP7
    • Python8
  • 软件配置1
  • 运营维护1
标签
74HC165 Android AndroidStudio Android逆向 Androlua Arduino C++ CTF Crypto ESP32 FreeRTOS Git IDA Idea Java JetBrains Linux MCU51 Misc NIO Nginx Office PC逆向 PHP Proteus Python RTOS Redis Reverse SQLMap STC89C52 STM32 Scrapy Tomcat Typecho VM保护 Web bug 内存模型 内存补丁
归档
  • 五月 20251
  • 十一月 20241
  • 九月 20231
  • 四月 20231
  • 十一月 20221
  • 十月 20221
  • 八月 20221
  • 七月 20223
网站资讯
文章数目 :
71
已运行时间 :
本站总字数 :
71.4k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By Jamie793
框架 Hexo|主题 Butterfly
搜索
数据库加载中