自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

姜雪峰的专栏

为了自己的成长

  • 博客(18)
  • 收藏
  • 关注

翻译 缓冲区溢出

缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典又古老的话题。顾名思义,缓冲区溢出的含义是为缓冲区提供了多于其存储容量的数据,就像我们往杯子里面倒入过量的水一样,多于的那部分水就可能会发生你意想不到的事情。通常情况下,缓冲区溢出的数据只会破坏程序数据,造成程序意外终止。但是如果有人精心构造溢出数据的内容,就有可能造成意想不到的后果,比如对方就有可能获得系统的控制权,从而操控整个

2017-06-11 22:05:42 579

原创 Python测试代码2之--unittest类的测试

在之前学习的python中unittest模块,主要是进行的函数级别的单元测试。这次,我们主要讲解一下类级别的单元测试。理论方面的知识之前已经讲解过了,这里就不再多说,我们直接进入正题,来实战演练一下通过unittest模块如何对类进行单元测试。        对类进行测试,那么我们首先要写一个类。主要的功能就是实现一个调查问卷,里面包含了几个函数方法。具体代码如下:#enco

2017-06-10 12:47:57 325

原创 利用Intent进行数据传递

前面两节讲到过Intent的使用,主要用来在活动之间起到一个桥梁的作用,但是无论显式Intent还是隐式Intent,目前我们只是用来启动活动,其实Intent还可以在启动活动的时候传递数据,本节我们就来学习一下。        在启动活动的时候传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动之后,只

2017-06-07 20:43:18 550

原创 探究活动之--隐式Intent

前面学习了显式Intent,那么相比于显式Intent,隐式Intent则含蓄了很多,它不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent。并帮助我们找出合适的活动去启动。        那到底什么叫做合适的活动呢?我们来看一下AndroidManifest.xml中的内容。activity an

2017-06-06 20:31:00 231

翻译 常见Android Native 崩溃及错误原因

Android应用上的Crash主要分为两种:1. Java Crash : java代码导致jvm退出,弹出“程序已经崩溃”的类似对话框,最终用户点击关闭后进程退出。Logcat会在"AndroiRuntime" 中输出崩溃的信息2. Native Crash : 通过NDK,使用C/C++开发,导致进程收到错误信号,发生Crash,Android5.0之前进程会直接弹出(闪退),And

2017-06-06 07:19:51 3182

原创 探究活动之--显式Intent

对于Android开发人员来说,对活动一定是非常的熟悉。那么活动到底是什么?以及它的一些用法,本节我们一起来探究一下。        首先,活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序都会包含1个或多个活动,用来和用户进行交互。理解了活动是什么之后,我们来通过一个稍微复杂一点的实例,来更加深入的去理解活动的用法。

2017-06-05 21:18:53 267

原创 Python测试代码1之--unittest

在程序员编写函数或者类时,也可以为其编写测试代码,我们可以把这种测试称之为--单元测试。通过测试,可以确定代码面对各种输入都能够按要求的那样工作。在程序中添加新代码时,我们也同样有必要对其进行测试,确认它们不会破坏程序既有的行为,从而在用户发现问题之前在最早期找出它们。        这一节我们将学习使用Python模块unittest中的工具来测试代码。包括学习编写测试用例,核实一系列输入都

2017-06-02 12:09:54 815

原创 兼容性测试探讨之--手动测试

关于兼容性测试,本次只讲述关于Android 移动端应用程序的测试。而所谓的兼容性测试的目的,就是看看你的应用程序能否在市面上绝大多数甚至所有的Android设备上能够正常运行以及软件之间能否正确的进行交互和共享信息。这里可能有人会问,为什么主要测试Android移动端的兼容性测试而不是IOS呢?这里很简单,众所周知,市面上所有的IOS设备加起来也没有多少,最多几十款。但是,你知道Android设

2017-06-01 13:07:44 374

原创 服务的基本用法-3

我们都知道,服务一般都是在后台运行的,一直以来都是默默的在后台工作着。但是有一个问题,就是由于服务的系统优先级比较低,当手机的系统出现内存不足的情况时,就有可能回收掉正在后台运行的服务。此时如果你想让你的服务能够一直保持运行状态的话,我们就可以来使用一种叫做前台服务的东东。前台服务和普通服务(后台服务)的最大区别在于它有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到详细的信息,类似

2017-05-11 07:09:32 199

原创 服务的基本用法-2

之前我们学习了启动服务和停止服务的方法,但是不知道你有没有发现,服务是在活动里启动的,但在启动了服务之后,活动与服务两者之间基本就没有什么关系了。确实如此,我们来分析一下。我们在活动里调用了startService()方法来启动MyService服务,然后MyService的onCreate()和onStartCommand()方法就会得到执行,之后服务就一直处于运行状态,具体运行的是什么逻辑,活

2017-05-10 07:36:42 301

原创 服务的基本用法-1

服务,作为Android四大组件之一(相信大家都知道Android的四大组件是什么了),有非常多重要的知识点,当然作为Android开发的新人,我们首先要从服务最基本的用法开始学习。还是闲言少叙,我们直奔主题,开始学习。要学习服务,首先我们要来定义一个服务。打开Android Studio,新建一个ServiceTest1项目,然后在com.example.servicetest1上右键,然后

2017-05-09 20:24:13 333

原创 Android--线程与异步消息处理机制

熟悉开发的朋友,对多线程编程一定不会陌生。当我们需要执行一些耗时操作时,比如说发起一条网络请求,考虑到网速以及一些其他原因,服务器不一定会立刻响应我们的请求。如果不将这类操作放到子线程里去运行,就可能会导致主线程阻塞,影响用户的正常使用。但是,并不是所有操作都能够在子线程中进行的,接下来我们就通过一个实例来探究一下。首先我们新建一个AndroidThreadTest项目,编辑activity_

2017-05-07 13:34:26 404

原创 探究碎片--简单的使用方式

现在移动设备发展的非常迅速,手机和平板在生活中变得越来越普及,而它们的最大区别就在于手机屏幕的大小。而这种屏幕大小的差距,也导致了一些问题的出现。比如在手机上显示的很漂亮的界面,在平板上显示的可能很难看,有些控件被过度的拉长、元素之间的空隙很大等等情况。      但是从android3.0版本开始引入了碎片的概念,可以让界面在平板上展示的更好。简单说一下碎片是什么:碎片就是一种可以嵌入到活动

2017-03-17 07:10:53 401

原创 RecyclerView--更强大的滚动控件2

前面我们学习了RecyclerView的基本用法,现在来学习一下它附带的另外一种内置的布局排列方式:StaggeredGridLayoutManager可以实现瀑布流布局。首先在RecyclerViewTest2的基础上,修改player_item.xml如下:这里做了几个调整,首相把LinearLayout的宽度有100dp改成match_parent,因为瀑布流布局的效果宽度应

2017-03-15 20:27:15 427

原创 RecyclerView -- 更强大的滚动控件1

前面我们用了两节学习了ListView控件,这是一个功能及其强大的滚动控件,在过去很长一段时间甚至现在的很多场景,都会用到ListView。但是他却有着一些缺点,比如前面我们看到了,需要使用一些小技巧来提升它的效率,否则ListView的性能就会很差。而且ListView的扩展也不好,只能够纵向的滚动,不能横向滚动。      但是各位不用担心,Android为我们提供了更加强大的滚动控件,也

2017-03-14 20:26:48 489

原创 ListView控件的使用2

前面讲到了ListView的简单用法,将一系列数据显示到屏幕上,但是那样可能有些单调,现在来对ListView的界面进行定制,让它来显示更加丰富的内容。这里我们就准备一组NBA球员的图片,分别用来对应之前显示的球员名字。        首先,我们来定义一个实体类,作为ListView适配器的适配类型,新建Player类,代码如下:        Player类只有两个字段,na

2017-03-13 19:59:48 296

原创 ListView控件的使用1

熟悉安卓开发的朋友,应该都知道,ListView的使用频率在开发中时非常高的,很多应用程序都会用到它。它大概是做什么的?举个例子,我们手机的屏幕空间都是有限的,要想一次性在屏幕上显示所有内容时不可能的。当我们的应用程序中,有大量的数据需要展示的时候,就可以用到ListView来实现了。ListView可以让我们通过手指上下滑动手机屏幕,将屏幕外的数据滚动到屏幕内,让我们看见,同时屏幕上原有的内容则

2017-03-12 17:45:21 288

翻译 android安全攻防,反编译代码

首先要声明的是,反编译别人的程序,并不是值得炫耀的技能。但是自己依然去学习、分享,就是为了通过理解反编译的原理,来更好的避免自己的程序被别人攻击,避免自己公司的核心技术被窃取。好了,多的不说了,现在开始直奔主题,讲一下自己通过在网上以及资料上学习到的一些反编译的知识。ps:新手第一次写博客,如有不妥当的地方,望各位指出并理解。       我们都知道,android程序打包之后会生成APK文件

2016-11-16 13:29:53 398

空空如也

空空如也

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

TA关注的人

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