自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 探究Jetpack(二)之LiveData

LiveData是Jetpack提供的一种响应式编程组件,它可以包含任何类型的数据,并在数据发生变化的时候通知给观察者LiveData特别适合与ViewModel结合在一起使用,虽然它也可以单独用在别的地方,但是在绝大多数情况下,它是使用在ViewModel当中的。

2023-06-09 17:39:48 973

原创 探究Jetpack(四)之 WorkManager

而WorkManager只是一个处理定时任务的工具,它可以保证即使在应用退出甚至手机重启的情况下,之前注册的任务仍然将会得到执行,因此WorkManager很适合用于执行一些定期和服务器进行交互的任务,比如周期性地同步数据,等等。另外,使用WorkManager注册的周期性任务不能保证一定会准时执行,这并不是bug,而是系统为了减少电量消耗,可能会将触发时间临近的几个任务放在一起执行,这样可以大幅度地减少CPU被唤醒的次数,从而有效延长电池的使用时间。后台任务的写法非常固定,也很好理解。

2023-06-09 17:39:16 918

原创 探究Jetpack(三)之ROOM

ORM(Object Relational Mapping)也叫对象关系映射。简单来讲,Kotlin使用的编程语言是面向对象语言,而使用的数据库则是关系型数据库,将面向对象的语言和面向关系的数据库之间建立一种映射关系,这就是ORM了ORM框架赋予了一个强大的功能,就是可以用面向对象的思维来和数据库进行交互,绝大多数情况下不用再和SQL语句打交道了,同时也不用担心操作数据库的逻辑会让项目的整体代码变得混乱。

2023-06-09 17:38:27 1233

原创 探究Jetpack(一)之ViewModel和Lifecycles

Jetpack是一个开发组件工具集,它的主要目的是帮助我们编写出更加简洁的代码,并简化开发过程。Jetpack中的组件有一个特点,它们大部分不依赖于任何Android系统版本,这意味着这些组件通常是定义在AndroidX库当中的,并且拥有非常好的向下兼容性Android studio新建一个JetpackTest工程,然后开始了解Jetpack。

2023-06-05 20:17:11 403

原创 Android界面设计:Material Design之滑动菜单

所谓的滑动菜单,就是将一些菜单选项隐藏起来,而不是放置在主屏幕上,然后可以通过滑动的方式将菜单显示出来。这种方式既节省了屏幕空间,又实现了非常好的动画效果,是Material Design中推荐的做法。

2023-06-05 16:39:52 426

原创 Android界面设计:Material Design之下拉刷新

沉睡结束之后,这里使用了runOnUiThread()方法将线程切换回主线程,然后调用initFruits()方法重新生成数据,接着再调用FruitAdapter的notifyDataSetChanged()方法通知数据发生了变化,最后调用SwipeRefreshLayout的setRefreshing()方法并传入false,表示刷新事件结束,并隐藏刷新进度条。运行程序,在屏幕的主界面向下拖动,会有一个下拉刷新的进度条出现,松手后就会自动进行刷新了。修改activity_main.xml中的代码。

2023-06-05 16:39:05 352

原创 Android界面设计:Material Design之可折叠式标题栏

虽说现在的标题栏是使用Toolbar来编写的,不过它看上去和传统的ActionBar没什么两样,只不过可以响应RecyclerView的滚动事件来进行隐藏和显示。还可以根据自己的喜好随意定制标题栏的样式这里实现一个可折叠式标题栏的效果,要借助CollapsingToolbarLayout这个工具。

2023-06-05 16:38:48 693

原创 Android界面设计:Material Design之悬浮按钮和可交互提示

在官方给出的示例中,最简单且最具代表性的立面设计就是悬浮按钮了,这种按钮不属于主界面平面的一部分,而是位于另外一个维度的,因此就会给人一种悬浮的感觉。打个比方,如果在执行删除操作的时候只弹出一个Toast提示,那么用户要是误删了某个重要数据的话,肯定会十分抓狂吧,但是如果增加一个Undo按钮,就相当于给用户提供了一种弥补措施,从而大大降低了事故发生的概率,提升了用户体验。可以看到,Snackbar从屏幕底部出现了,上面有我们设置的提示文字,还有一个“Undo”按钮,按钮是可以点击的。

2023-06-05 16:38:06 487

原创 Android界面设计:Material Design之卡片式布局

这是由于RecyclerView和Toolbar都是放置在CoordinatorLayout中的,而前面已经说过,CoordinatorLayout就是一个加强版的FrameLayout,那么FrameLayout中的所有控件在不进行明确定位的情况下,默认都会摆放在布局的左上角,从而产生了遮挡的现象。水果图片的长宽比例可能会不一致,为了让所有的图片都能填充满整个ImageView,这里使用了centerCrop模式,它可以让图片保持原有比例填充满ImageView,并将超出屏幕的部分裁剪掉。

2023-06-05 16:37:54 1533

原创 Android界面设计:Material Design之Toolbar

Material Design是由Google的设计工程师们基于传统优秀的设计原则,结合丰富的创意和科学技术所开发的一套全新的界面设计语言,包含了视觉、运动、互动效果等特性。简单来说,就是一个包含多种控件和布局的库,名为Material库Android studio新建一个MaterialTest项目,配合AndroidX库中的一些控件开始了解Material库。

2023-06-05 16:37:01 610

原创 Android开发之使用网络技术解析XML和JSON数据

当调用了AppService的getAppData()方法时,会返回一个Call<List<App>>对象,这时再调用一下它的enqueue()方法,Retrofit就会根据注解中配置的服务器接口地址去进行网络请求了,服务器响应的数据会回调到enqueue()方法中传入的Callback实现里面。在Callback的onResponse()方法中,调用response.body()方法将会得到Retrofit解析后的对象,也就是List<App>类型的数据,最后遍历List,将其中的数据打印出来即可。

2023-05-29 21:12:18 603

原创 Android开发之使用网络技术

在showResponse()方法里,由于Android是不允许在子线程中进行UI操作,所以使用一个对异步消息处理机制进行封装的runOnUiThread()方法,然后在这个方法的Lambda表达式中进行操作,将返回的数据显示到界面上。注意,子线程中是无法通过return语句返回数据的,因此将服务器响应的数据传入了HttpCallbackListener的onFinish()方法中,如果出现了异常,就将异常原因传入onError()方法中。在使用OkHttp之前,需要先在项目中添加OkHttp库的依赖。

2023-05-29 20:07:53 689

原创 Android四大主件之Service

在Android studio项目中定义一个个Service。新建一个ServiceTest项目,然后右击com.example.servicetest→New→Service→ServiceExported属性表示是否将这个Service暴露给外部其他程序访问Enabled属性表示是否启用这个Service此时已经创建一个空的Service类,在类中有一个onBind()方法是Service中唯一的抽象方法,必须实现在Service中重写下面的方法,使Service可以出来事情。

2023-05-27 13:38:22 213

原创 Android多线程编程

progressDialog . show() // 显示进度对话框 } override fun doInBackground(vararg params : Unit?) = try {val downloadPercent = doDownload() // 这是一个虚构的方法 publishProgress(downloadPercent) if(downloadPercent >= 100) {) {

2023-05-26 22:32:34 258

原创 Android使用手机的多媒体(代码解释)

发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。这里仍然是调用的setStyle()方法,这次在参数中创建了一个 NotificationCompat.BigPictureStyle对象,这个对象就是用于设置大图片的,然后调用它的bigPicture()方法并将图片传入。首先在onCreate()方法中调用了Uri.parse()方法,将raw目录下的video.mp4文件解析成了一个Uri对象,这里使用的写法是Android要求的固定写法。

2023-05-26 14:42:46 465

原创 Android的控件与布局

新建Activity继承LinearLayout,这样就可以成为自定义的标题栏控件init {在主构造函数中声明了Context和AttributeSet这两个参数,在布局中引入TitleLayout控件时就会调用这个构造函数。在init结构体中需要对标题栏布局进行动态加载,需要借助LayoutInflflater来实现通过LayoutInflflater的from()方法可以构建出一个LayoutInflater对象,然后调用inflate()方法就可以动态加载一个布局文件。

2023-05-25 22:15:30 577

原创 Activity和Fragment

在SecondActivity中启动FirstActivity时,会发现返回栈中已经存在一个FirstActivity的实例,并且是在SecondActivity的下面,于是SecondActivity会从返回栈中出栈,而FirstActivity重新成为了栈顶Activity,因此FirstActivity的onRestart()方法和SecondActivity的onDestroy()方法会得到执行。系统最不愿意回收的就是处于运行状态的Activity,因为这会带来非常差的用户体验。

2023-05-25 21:48:36 1069

原创 Kotlin

和绝大多数主流编程语言不同的是,Kotlin却极度弱化了静态方法这个概念,想要在Kotlin中定义一个静态方法不是一件容易的事那么Kotlin为什么要这样设计呢?因为Kotlin提供了比静态方法更好用的语法特性,那就是单例类。虽然这里的doAction()方法并不是静态方法,但是我们仍然可以使用Util.doAction()的方式来调用,这就是单例类所带来的便利性。

2023-05-25 21:41:43 323

原创 python学习

00000

2021-06-08 17:59:12 172

原创 简单python爬虫

初识爬虫初识爬虫什么是爬虫网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略爬虫可以做什么你可以爬取需(mei)要(zi)的图片,爬取自己想看的视频等等,只要你能通过浏览器访问的数据都可以通过爬虫获取爬虫的本质是什么模拟浏览器打开网页,获取网页中我们想要的那部分数据8888888888888888888888888888888888888888...

2021-06-04 23:41:54 389

原创 PHP学习(四)

函数自定义函数PHP变量范围1.局部变量2.全局变量3.静态变量参数的传递1.按值传递参数2.按引用传递参数3.函数的默认参数4.可变长度参数列表可变函数(变量函数)函数可以比喻成我们现实生活中的 某个零件的制造部门参数:原材料或者是这个零件的一些具体的参数自定义函数函数的定义格式如下:function 函数名([参数1,参数2····参数n ]){函数体;//任何有效的PF护代码都可以作为函数体使用return表达式; //可以从函数中返回一个值,也可以不返回}函数的调用:不管是

2021-05-30 19:17:04 283 1

原创 2021-ISCC

web题练武题web1-ISCC客服冲冲冲(一)web2-这是啥web3-web01练武题web1-ISCC客服冲冲冲(一)1.写个脚本(不会)2.用连点器(不想)3.左右互换,让真正的一号票数增加(就这个)然后就得出flagweb2-这是啥F12查看源代码,jsfuck加密也可以谷歌的控制台,复制粘贴回车得出flagweb3-web01进入页面,让你想看看robots.txt协议访问robots.txt按照管理,不让访问,那必须访问,得到如下代码<?php&

2021-05-24 17:35:16 1146

原创 攻防世界

crypto新手区1.base642.Caesra3.Morse4.幂数加密5.Railfence6.不仅仅是morse7.混合编码8.easy_RSA9.easychallenge10.转轮机加密1.base64打开附件,用base64,得出flag2.Caesra打开附件很明显是凯撒密码,但是由于不知道位移是多少(也有可能是我猜看不出来),一个一个式,当位移为12时得出flag3.Morse打开附件,只有0和1猜想为摩斯密码,把1改为-,把0改为.用摩斯密码解密后,根据题目提示

2021-05-23 13:58:23 439

原创 PHP学习(三)

PHP学习之基本语法流程控制一、顺序执行二、分支执行1.if语句三、switch流程控制对PHP程序执行的过程进行控制一、顺序执行顺序执行就是简单的从上往下执行即可,对程序执行过程没有控制<?phpecho '执行到第1步了';echo '执行到第2步了';echo '执行到第3步了';echo '执行到第4步了';二、分支执行顺序执行虽然能解决计算,输出等问题,但是执行太过死板,无法完全满足我们实际的开发需要,所以我们需要引入分支执行。分支执行可以根据条件是否满足来选择执行某

2021-05-23 10:00:59 319

原创 PHP学习(二)

PHP学习之基本语法运算符1.算术运算符2.字符串运算符3.赋值运算符4. 比较运算符运算符运算符:对一个或者多个操作数(变量或者数值)执行某种运算的符号,也称操作符,这些符合可以将变量或者数据执行某种运算根据操作数的个数分为一元运算符、二元运算符、三元运算符! true;//一元运算符,!是运算符、true是操作数$a+$b;//二元运算符,+是运算符、$a,$b是操作数true ? 1:0;//三元运算符,?和:是运算符、true,1,0是操作数 1.算术运算符有如下几种运算符+ -

2021-05-17 17:30:46 80

原创 PHP学习(一)

PHP学习之基本语法一.初识PHP脚本程序1.PHP开始与结束标记2.指令分隔符:分号(;)3.注释4.空白处理二、变量1.变量的赋值2.变量的销毁3.变量命名的规则4.可变变量5.变量的引用语法就是PHP官方规定的一系列使用PHP的规则一.初识PHP脚本程序1.PHP开始与结束标记<?php//开始标记?>//结束标记在开始与结束之外的内容都会被忽略,且所写的PHP代码可以嵌入html代码中注:文件末尾的结束标记可以不要,但只能是末尾的2.指令分隔符:分号(;)PHP语句在

2021-05-16 14:49:35 183

原创 bugku CTFweb(6~15关)

bugku webweb6web7web8web9web6F12,不过不是看源代码,而是下图的东西(用火狐方便)滑到最下面得到一串编码,是Unicode编码,解出来就是flagweb7Ctrl+U打开源代码,网页一直刷新,源代码的网页也要一直刷新,刷到10.jpg(不过有两个10.jpg)时就能得出flagweb8打开网页,得到下图根据php语言,访问:/?hello=file('flag.php'),得出flagweb9访问:/?args=GLOBALS得出flag..

2021-04-25 14:55:49 204

原创 ctf.show VIP限免题目(13~20关)

信息泄露13.内部技术文档泄露14.编辑器配置不当15.密码逻辑脆弱16.探针泄露17.CDN穿透18.js敏感信息泄露19.前端密钥泄露20.数据库恶意下载13.内部技术文档泄露打开网站,是一个不知道是什么的网站,既然题目是关于技术文档的东西,就找关于文档的东西呗,果然,翻到最下面就找到了进去下面就有后台登录的账号和密码不过打开并地址不能访问,提示找不your-domain的服务器,翻译一下就是:你的网域,因为这个题目不是给一个做的,每个人打开题目的域名也是不一样的,所以需要把/system

2021-04-18 19:22:45 989

原创 upload-labs(6~10关)通关记录

1~5关通关过程可以看我上篇博客upload-labs6~10关和一个小问题通过过程第六关第七关一个小问题通过过程第六关查看源代码和提示,这题依然是ban了不少东西(估计之后的题都是这样的吧),不过没把大小写ban了(这不是别博客上第五关的题吗,到我这是第六关了)所以我们可以用大小写绕过,依旧抓包,改后缀名呗第七关看完源代码,把大小写ban了,还可以用空格绕过,就是可以在后缀名加空格绕过,理论上可以这样,不过我试了试还是没能绕过没办法,只能用把后缀名改为php . .的方法了具体操

2021-04-15 21:01:22 268

原创 文件上传

文件上传什么是文件上传文件上传的原理upload-labs搭建upload第一关通过方法准备过程开始上传文件上传什么是文件上传文件上传的原理在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。upload-labs搭建upload-labs搭建与sqli-labs搭建方法类似,upload下载网站,下载后压缩到PHPstudy的WWW文件夹里就行了。输入地址http://localh.

2021-04-11 19:24:32 68

原创 ctf.show VIP限免题目(1~12关)

信息泄露1.源码泄露2.前台JS绕过3.协议头信息泄露1.源码泄露F12查看源代码,得到flag2.前台JS绕过还是查看源代码,这次F12不行还可以用:ctrl+u,在网站前面加view-source:等方法绕过3.协议头信息泄露根据题目要使用BP抓包来解决...

2021-04-08 20:22:08 910

原创 攻防世界misc进阶(1~10关)

攻防世界misc进阶题目解析1.base64÷42.wireshark-11.base64÷4题目很明显是base16解码解码网站2.wireshark-1然而并不知道wireshark是个什么东西,百度一下应该需要下载一个wireshark环境,下载链接然后向某个好心的师傅请教了一下怎么使用找到这个,右键,追踪流,TCP流得出flag...

2021-04-01 19:43:46 1366 1

原创 攻防世界刷题记录

题目新手练习区1. this_is_flag2.pdf3.如来十三掌4.give_you_flag5.坚持60s6.gif7.掀桌子8.ext39.stegano新手练习区1. this_is_flag就Ctrl+C Ctrl+V2.pdf打开附件,这个玩意在这里可以看的是有一串文本的Ctrl+C Ctrl+V粘贴到记事本中就可以知道flag了3.如来十三掌打开附件一堆繁体字,一开始还以为是新佛曰密码,解码不出来然后又发现一个与佛论禅的密码,解码果然对十三掌应该是ROT

2021-03-28 21:02:01 172

原创 第一次团队比赛

SLCTF2021Web1、题目如下:右键没反应,F12也不行,直接百度,发现Ctrl+U也可以打开源代码,但是。。。。然后找到这个了,好像只有IE浏览器有这个东西base64,得到SL{This_i4_flag!}MISC1、打开附件,更改格式为zip,有张图片放入WinHex或者101中,直接搜flag不过有两个flag,第一不是的2、打开附件,还是更改格式,不出意外的还是张图片这次WinHex中,没找到什么有用的东西所以,我选择打开图片属性3、打

2021-03-22 19:58:10 212 2

原创 sqli-labs1~4关解析以及目前遇到的问题解决方法

sqli-labs1~4关靶场解析做sqli-labs靶场时推荐使用火狐浏览器,因为火狐里的hackbar插件可以节省许多时间的1、判断闭合符合首先判断闭合符合,闭合符号有4种(’、"、’)、"))怎么判断呢。。。。。一个一个式就行了(反正就4个不会浪费多少时间的)第一关判断出来的闭合符合为 ‘别忘了在最后们加上注释符(–+或#)再判断闭合符合2、判断列数使用order by 语句来判断就是使用order by 从1开始判断判断到4时,回显错误,证明列数为33、爆出数据库因为

2021-03-16 19:37:47 582

原创 java下载及其安装

一、了解javaJava 是一项用于开发应用程序的技术,可以让 Web 变得更有意思和更实用。 Java 与 javascript 并不相同,后者是一种用于创建 Web 页的简单技术,只能在浏览器中运行。使用 Java 可以玩游戏、上载照片、联机聊天以及参与虚拟体验,并能够使用联机培训、网上银行和互动地图等服务。如果没有安装 Java,则许多应用程序和网站都无法工作适用于您的计算机的 Java 软件,即 Java 运行时环境,也称为 Java 运行时、运行时环境、运行时、JRE、Java 虚拟机、虚拟

2021-03-10 20:43:21 620 3

原创 Bugku CTF做题记录

由于个人实力原因没做出来几题web1点进网站发现是这玩意:不要慌,直接按F12就可以看见答案了web2这个东西。。。?计算出来为96但是输入数字时却发现只能输入一个数字然后懵逼。。。。然后F12看见了maxlength(最大长度)这个单词后面改成2以上就行就行了至于为什么能看见这个,因为我的英语水平不行,其他单词不允许我知道web3题目是:一个基础的get题根据题意改成这样嗯。。。那个"?“是英文的”?",被坑了!!!!wbe4一个关于post的题

2021-02-28 18:06:50 152

原创 寒假第三次作业(SQL学习)

SQL学习了解SQL什么是SQLSQL注入是什么SQL注入过程联合注入搭建靶场install靶场第一关(一部分)一、判断闭合符合二、判断列数了解SQL什么是SQLSQL注入是什么SQL注入过程联合注入搭建靶场install1、下载PHP(由于前两次的学习已经下载好了)2、下载链接: sqli-labs-master.zip.解压后放在phpstudy_pro的www目录运行。注意: sqli-labs运行php运行环境不支持php7,需要将phpstudy_pro的php版本设置为5

2021-02-07 15:29:56 237 1

原创 寒假第二周作业(web学习)

学习内容:1、HTML的学习2、登录框的编写运用所学html知识,成功写出一个登陆框页面学习效果:HTML的学习什么是HTML?HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言: HyperText Markup LanguageHTML 不是一种编程语言,而是一种标记语言,标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页HTML 文档包含了HTML 标签及文本内容HTML文档也叫做 web 页面HTML 标签HTML 标记标签通常

2021-01-23 18:33:36 195

原创 寒假第一周作业

这里写自定义目录标题作业内容:学习效果:1.了解什么是数据库?2. 数据库的表,列,字段,数据之间的联系。3. 选择MySQL数据库进行学习增、删、查、改简单操作。增:删:查:改:作业内容:1.了解什么是数据库?2. 数据库的表,列,字段,数据之间的联系。3. 选择MySQL数据库进行学习增、删、查、改简单操作。建议:最好使用PHPstudy集成环境。不用下载单独的MySQL。检查:在CSDN记录自己的学习成果,发布博客。学习效果:1.了解什么是数据库?2. 数据库的表,列,字段,数据之

2021-01-15 23:04:34 1225 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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