自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 React Native申请Android权限,PermissionsAndroid,权限申请多权限申请,这篇就够了

RN权限申请最基础的一步,先在android的AndroidManifest.xml文件中添加权限声明就像这样。然后使用reactNative自带的权限管理API,使用比较简单。PermissionsAndroid和它的三个方法这个API主要使用的就是三个方法,用于检查是否拥有权限的check方法,请求权限的request方法,请求多个权限的requestMultiple方法,check(permission):检查传入的权限是否经过授权,返回的是一个promise,解析为布尔值。r

2021-03-02 16:01:46 3469

原创 React navigation的底部导航bottom-tabs结合BackHandler,实现首页连续两次物理返回键退出APP

React navigation Bottom-tabs的问题最近使用react navigation的底部导航,发现每次使用物理返回键,他都是默认跳转到上一个screen,而不像很多app一样,第一次返回弹吐司提示,在按一次返回键退出app。要做到这样的功能我使用react自带的平台API BackHandler简单实现了一下首先需要做好的Bottom-tabs导航页面 render() { return ( <Tabs.Navigator backBehavior="n

2021-03-02 13:54:51 1062

原创 ReactNative动画浅入LayoutAnimted布局动画

LayoutAnimated API总的来说,非常好使,相对于Animated来说使用不要太简单,不用处理各种插值,相比于没啥用的requestAnimationFrame帧动画,代码简洁,性能也好很多。必要的开头import { UIManager } from 'react-native';if (Platform.OS === 'android') { if (UIManager.setLayoutAnimationEnabledExperimental) { UIManager

2021-03-01 15:03:50 359

原创 React-Native踩坑:react-native-config无法读取.env问题,解决方案

react-native-config是react-native里为数不多可以选择的多环境配置插件,在js.coach里可以找到文档,安装使用过程很详细,可就是这样详细的过程操作后,他就是读取不到读取不到读取不到,怎么打印都是undefined。解决过程百度,谷歌,各种帖子看了相关问题特别少,几乎没有能用的,然后重装了各种版本的react-native-config,重写多遍.env,然后链接android和相关配置都没的问题,然后无奈再刷谷歌,终于附上链接:https://juejin.cn/

2021-01-25 15:11:59 1559 1

原创 Android:Service开启之startService与bindService混合使用

为什么需要混合使用根据上篇提到了Service的各种生命周期,我们知道startService开启后与调用者毫无关联,不会随着调用者的销毁而销毁。bindService可以与调用者绑定实现一些交互,但是与调用者共生死。所以需要两者结合使用发挥各自的有点,即又能提供与调用者的交互,又不会与调用者一起销毁的服务不同开启方式的生命周期startService & stopServiceonCreate – onStartCommand – onDestroy不会随着调用者销毁bindServ

2020-05-13 17:38:57 1211

原创 Android:Service生命周期方法与Service启动方式bindService与StartService

Service是什么服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。不过需要注意的是,服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时,所有依赖于该进程的服务也会停止运行 -————取自《第一行代码——Android》Service生命周期自调用的方法:

2020-05-13 16:11:19 1444

原创 Android:RecyclerView与CardView控件基本使用,很干的干货!!

RecyclerView是一个Android 5.0推出的,是support-v7包中的新组件,它被用来代替ListView和GridView,并且能够实现瀑布流的布局,是个更加高级和灵活的控件,并且提供了更加高效的回收复用机制。有RecyclerView还要什么listView,还要什么GridView??官方使用说明:https://developer.android.google.cn/...

2020-03-18 11:40:38 522

原创 Android:广播接收者BroadcastReceiver

广播接收者android的四大组件之一,可以跨应用的传递信息,每一个应用都可以发送和接受广播,并且对自己感兴趣的广播进行注册。广播可以分为:标准广播(无序广播)有序广播创建广播接受者创建广播接收者需要用到BroadcastReceiver类,实现onReceive方法,在该方法呢,我们可以获取广播内包含的Intent中的数据public class Broadcast extends...

2020-03-16 17:43:10 191

原创 Android:Activity的七个生命周期方法以及四个生命状态

Activity的七个生命周期方法onCreate:开启activity的第一个方法,这个方法会初始化setContentLayout()方法(屏幕绘制),onStart:onCreate()方法完成后,此时activity进入了onStart()方法,当前activity是用户可见状态,但是还不能交互,再此课做一些动画的初始化操作。onResume:onStart()后activity进...

2020-03-14 17:04:34 11600

原创 android:关于存储,SharedPreferences与SQLiteOpenHelper,这一篇就够了

android存储数据方式总结:SharedPreferences轻量级存储框架SQLite数据库存储文件存储第一种:SharedPreferences存储数据SharedPreferences 轻量级的存储信息的api 可以保存的数据类型有限六种booleanintlongfloatStringSet获取SharedPreferences 对象的方法:getS...

2020-03-14 14:46:08 203

原创 java IO打印流:PrintStream类

什么是打印流打印流是输出信息最方便的工具,打印流包括两种:字节打印流:PrintStream字符打印流:PrintWriter打印流可以打印任何数据信息。System.out.println("");中的print即是PrintStream中的方法。打印流的特点不负责数据源,只负责数据目的为其他输出流,添加功能永远不会抛出IO异常,但是可能抛出别的异常Prin...

2020-01-15 16:19:58 216

原创 java IO序列化:ObjectOutputStream类,ObjectInputStream类

概述Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。 对象的数据 对象的类型和对象中存储的数据信息。序列化的含义->序列化:将对象写入到IO流中反序列化:...

2020-01-15 15:27:40 274

原创 java IO转换流:InputStreamReader,OutputStreamWriter

概述字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。文件一定...

2020-01-15 14:43:17 203

原创 java IO缓冲流: BufferedInputStream BufferedOutputStream

概述:缓冲流主要为了增强基础流的效率而存在,不用缓冲流的话,程序是读一个数据,写一个数据,大量占用了CPU,(本来CPU可以一次多处理内容的)处理这样在数据量大的程序中非常影响效率。缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了。缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:Buffered...

2020-01-15 10:28:50 312

原创 java 属性集Properties类

概述java.util.Properties 继承于 Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时, System.getProperties 方法就是返回一个 Properties 对象。特点:Properties类是Hashtable的子类,所以Map集合中的方法都可以使用。Pro...

2020-01-14 17:45:41 171

原创 java IO字符流与字节流

字节流 ->java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。FileOutputStream类与FileInputStream类实现文件读写。由...

2020-01-14 16:32:46 213

原创 java IO流相关类与接口概要与File类

java.io下的类与接口概要->IO包下主要五个类与一个接口:类:File,OutPutStream,InputStream,Writer,Reader接口:serializable (序列化用)File类java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。// 文件路径名String pathname = "D:\\aaa...

2020-01-14 15:41:04 168

原创 java线程同步机制synchronized关键字

当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题。要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,Java中提供了同步机制(synchronized)来解决。1:Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。:2:当两个并发线程访问同一个对象object...

2020-01-08 18:03:22 407

原创 Java多线程的多种实现,Thread与Runnable

java多线程Java使用 java.lang.Thread 类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。Runnable接口与Thread类Runnable是接口,Thread是Runnable接口的已知实现类,Thread 类实现了 Runnable...

2020-01-08 16:36:33 131

原创 软件测试-因果图与判定表

因果图简介等价类划分法和边界值法都是着重考虑到了输入条件,但是没有考虑到输入条件的组合与输入条件的相互制约关系。这样有可能忽视了很多错误如果测试时考虑到了各种组合,测试所有组合将是一个天文数字,因此需要考虑采用一种适用与多种条件组合相应产生多种动作的形式来进行测试用例的设计,这就需要因果图(逻辑模型)因果图思想一些程序的功能可以用判定表的形式来表示,根据输入条件的组合情况来规定相应的操作...

2019-11-06 17:11:05 2828 1

原创 软件测试-边界值法-测试用例编写

边界值:就是对等价类划分的一种补充,长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。编写步骤1:根据被测对象的输入或输出要求确定边界值2:选取等于,刚刚大于,刚刚小于边界的值作为取值单缺陷假设和多缺陷假设单缺陷假设:是指 “失效极少是由于两个或两个以上的缺陷引起的”,要求测试用...

2019-11-06 16:11:45 2184

原创 python中不得不知道的:迭代器与生成器理解,最简单易懂的版本

什么是可迭代对象最直观的理解就是可以被for in 循环的对象,例如字符串,字典,列表,元组,集合等,用另一句话来说就是实现了__iter__ 方法的就是可迭代对象(__iter__方法是python内置方法,用于返回迭代器自身)什么是迭代器迭代器就是一个实现了迭代方法的容器,他是一个带状态的对象,他能在你调用next的时候返回容器内的下一个值任何实现了__iter__和__next__...

2019-11-01 16:56:22 179

原创 Scrapy爬取图片网站——最详细的入门爬虫教程,新手入门干货,不进来看一下?

开始前准备这次爬虫使用scrapy,所以用到的工具必然是python3.7,scrapy,pycharm这些东西,目标网站:http://pic.netbian.com 彼岸图网,个人非常喜欢的图片网站,完全公开免费,几乎没有防爬措施,对于爬虫新手来说是费非常好的练手网站,不过各位练手的时候注意限制爬虫速度,不要对人家造成太大的负载。项目创建在项目目录下创建爬虫项目,pycharm或者cm...

2019-10-30 16:49:45 1766

原创 软件测试-测试用例编写-等价类划分

等价类划分介绍等价类划分是一种典型的黑盒测试方法。等价类划分是指分步把海量(无限)的测试用例简化到很小,但过程同样有效,也即是说,选取足够小的测试用例,发现更多的软件缺陷。类型划分等价类划分有两种不同情况: 有效等价类与无效等价类。有效等价类:指对于程序的需求规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中规定的功能和性能(确认过程)。...

2019-10-27 16:22:05 1403 1

原创 selenium-键盘操作,keys的的使用

keys包的导入selenium有很完整的键盘操作,都在keys模块里#导入keys包from selenium.webdriver.common.keys import Keys组合键使用KeysWord_Box = driver.find_element_by_xpath('//*[@id="kw"]')#搜索框输入内容KeysWord_Box.send_keys('test...

2019-10-24 21:53:18 1105

原创 selenium-ActionChains类的使用,鼠标基本事件

引入ActionChains模块from selenium.webdriver.common.action_chains import ActionChainsActionChains类提供的鼠标事件方法perform()执行所有ActionChains存储的事件context_click()右击double-click()双击drag_and_drop...

2019-10-23 17:35:11 361

原创 selenium的安装配置与基本操作

下载安装下载chromedirverchromediver地址:http://chromedriver.storage.googleapis.com/index.html这里找到适合自己chrome的版本下载,下载完成后解压拿到chromedirver.exe,将它放入chrome目录下的Application目录下然后搞快点下一步python安装selenium这步就很简单了,用...

2019-10-23 16:16:46 193

原创 软件测试基本理论——软件测试基本流程

测试对象介绍对于当前的测试行业来说哦我们最经常测试的主题就是软件(主体功能),但是需要我们明白是一个软件也不仅仅只有功能需要测试,我们可以将软件分为三个部分组成,功能集合+使用说明书+配置数据对于一款软件来说,从无到有的过程,我们可以将这个过程分为不同的阶段,然后每个阶段都会有相应的测试对象需求分析阶段各种需求规格说明书软件架构阶段API接口文档编码实现阶段源代...

2019-10-22 19:32:22 1016

原创 软件测试基本理论——软件开发模型与测试分类

软件开发流程1、瀑布模型图片来源网络瀑布模型以上一个阶段的输出作为下一个阶段的输入,相邻的两个阶段具有因果关系,紧密相连。瀑布模型是 线性模型的一种,在所有模型中占有重要地位,是所有其他模型的一个基础测试的切入点:测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露。优点缺点强调需求、设计的作用难以适...

2019-10-22 17:52:43 442

原创 Scrapy中的Item与ItemLoader对象

Scrapy之item与itemloadItemitem对象是种简单的容器,类似于python的字典,用于保存处理爬取到的内容,item的用法与字典基本一致,所以可以把item当做字典来操作item的声明item声明在scrapy项目的items.py中,通过class和field对象来声明import scrapy#item声明和Django Models比较类似,不过只有fiel...

2019-10-07 15:17:57 200

原创 Django中Template理解

Template不同于普通的HTML文本Template与普通HTML本质上都是普通的文本,不同的是Template由HTML代码与逻辑控制代码(包括后台传来的参数)组成html可以通过浏览器直接打开,Template则需要通过django后台渲染后才是完整的HTML代码,再由浏览器渲染。Demo:<!DOCTYPE html><html lang="en">&...

2019-07-08 16:42:59 1599

原创 Django常用基本命令

本文整理一些最基本的Django命令,在终端或者IDE中可以直接输入这些命令新建Django项目django-admin.py startproject project_name project_name 就是Django项目名不要搞错了新建app接下来很多操作需要和这个一样,需要在终端进入Django新建的项目目录里面,里面有manage.py这个文件,接下来很多django命令都要...

2019-07-07 12:23:26 231

原创 Django的mtv模式理解

MTVDjango的mtv模式和最常见的mvc模式其实是一样的,就是 Django喜欢搞点花里胡哨的,所以叫mtv模式,mtv三层分别是Model: 模型层,负责与数据库交互Template: 模板层,也就是所谓的前端,负责把页面展示给用户,View:视图层,负责业务逻辑,在适当的时候调用Model和Template两层。下图取自某位大佬的博客:可以看到除了Models,view,...

2019-07-07 11:54:41 1805

原创 python爬取百度文库DOC文档的简易脚本

页面分析我们首先在百度文库随便搜索一片文章,(此脚本只针对DOC文档)打开它,查看源码我们定位到具体某行文字,可以发现文字都分布在各个标签内部,这时候和我一样初学爬虫的小伙伴会想到用request来获取html源码,用BeautifulSoup进行操作,想法是好的,可是现在的百度文库不是以前,现在的百度文库的反爬手段还是有的,当你request下来后你会发现根本找不到文章中的文字,道高一尺魔...

2019-06-19 18:36:30 4572 1

空空如也

空空如也

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

TA关注的人

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