自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

carter_dream的博客

专心做一个会技术的tester

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

原创 【Android开发学习笔记】【高级】【随笔】插件化——Activity生命周期

前言  如同第一章我们说的,宿主程序通过 dexclassloader 将插件的类加载进来,然后通过反射去调用它的方法,这样Activity就被当成了一个普通的类来执行了,因此系统不再接管它的生命周期,也就是说Activity的生命周期函数失效了。针对这样的问题,有网友想出使用Fragment来解决此问题,Fragment既有类似于Activity的生命周期,又有类似于View的界面,因此

2015-12-14 16:00:42 789

原创 【Android开发学习笔记】【高级】【随笔】插件化——资源加载

前言  上一节我们针对插件最基本的原理进行了一个简单的demo实现,但是由于插件的Context对象被宿主所接管,因此无法加载插件程序的资源。那么如何解决这个问题捏?  有人提出这样的方案:将apk中的资源解压到某个目录下,然后通过读文件的方法进行资源加载,虽然理论上可以实现,但是实际操作起来难度很大,首先资源文件格式不一(xml、图片等),其次针对不同分辨率的手机,Android设备

2015-12-14 16:00:38 838

原创 【Android开发学习笔记】【高级】【随笔】插件化——初探

背景  随着tencentmap项目的越来越庞大,终于有一天我们的App在Android 2.*以下手机上安装时出现INSTALL_FAILED_DEXOPT,导致安装失败。  INSTALL_FAILED_DEXOPT导致无法安装的问题,从根本上来说,可能是两个原因造成的:  (1)单个dex文件方法总数65K的限制。  (2)Dexopt的LinearAlloc限制。 

2015-12-14 16:00:35 744

原创 【Android测试】【第十三节】Uiautomator——项目实战

前言  前面我们已经了解Uiautomator的基本知识,并且学习了API的用法,因此对于我们来说完成一个UI自动化测试脚本并不难,但是如何将UI自动化应用在实际的项目中,帮我们提高测试的效率呢?本节我们就说说,UI自动化应该怎么去完成。  我们以微信"小视屏"这个功能为例,来完成本次自动化测试的讲解。(鉴于隐私原因,默认在执行脚本前,微信已经是登录状态)分析  当我们要完

2015-12-14 16:00:30 1891 4

原创 【Android测试】【第十二节】Uiautomator——API详解

简单的例子  以一个简单的例子开始吧。我们完成一个 " 打开QQ,进入QQ空间,然后退出 " 的case。  代码如下:package QQ;import java.io.IOException;import com.android.uiautomator.core.UiDevice;import com.android.uiautomator.core.U

2015-12-14 16:00:21 2814 1

原创 【Android测试】【第十一节】Uiautomator——简介

前言  在App的测试中,除了单元测试来保证Andr​​oid应用程序的各个组件(例如activities、services和content providers),测试用户在应用程序界面的行为也是非常重要的一部分。UI测试(UI Testing)可确保用户在一系列操作过程中(例如键盘输入、点击菜单、弹出对话框、图像显示以及其他UI控件的改变),你的应用程序做出正确的UI响应。  谷歌U

2015-12-14 16:00:16 969

原创 【Android测试】【第十节】MonkeyRunner—— 录制回放

前言   在实际项目进行过程中,频繁的需求变更和突如其来的测试任务,不会留给我们过多的时间去写测试脚本,这个时候如果可以进行录制我的一次操作,然后自动的回放出来,那么就能够节省很多的时间。  恰好monkeyrunner帮我们提供了可以录制 回放的功能。  发现一个看源码的网址:http://124.16.141.157/lxr-0101/source/sdk/monkeyrunn

2015-12-14 16:00:12 1136

原创 【Android测试】【第九节】MonkeyRunner—— 初识

不得不说两句,过了这么久才再次更新博客,主要原因是工作太忙,而且刚好又参与了很多业余活动,因此基本没时间去写,不过我还是决定坚持把我要写的东西全部写完,希望能够帮助到刚刚入门的测试者们。   前言  本节讲解的内容是monkeyrunner,monkeyrunner和monkey同样都是谷歌研发的测试工具,相比monkey用来做压力测试而言,monkeyrunner更偏重于

2015-12-14 16:00:07 672

原创 【Android测试】【第七节】Monkey——源码浅谈

前言   根据上一篇我们学会了Monkey的用法,知道了Monkey可以非常容易的模拟伪随机的模拟事件。也许有的时候我们想让他稍微智能化一些,例如只在某个屏幕范围产生伪随机事件,或者说是只对某些指定Activity进行操作,这样就需要我们对Monkey进行改良了。而改良必须去改Monkey的源码,因此本节课们就简单的说说Monkey的源码。  源码下载地址:https://code.g

2015-12-14 15:59:58 972

原创 【Android测试】【第六节】Monkey——认识和使用

自动化工具  接触安卓测试最早听说的一个工具就是Monkey,很有意思的名字,当然也很容易学习。 名词解释  个人推荐,如果有精力的最后还是读一下这个文档:http://developer.android.com/intl/zh-cn/tools/help/monkey.html  Monkey是一个运行在你手机上的程序,它可以产生一些伪随机事件流,例如点击(click

2015-12-14 15:59:53 549

原创 【Android测试】【第五节】LogCat——命令行

前言  上一篇将的是如果在eclipse中的Logcat进行Log的查看和过滤,很多的时候我们面临着这样的问题:  如果你的app需要在室外才可以运行(例如使用地图软件中的导航),室外可能不方便去携带电脑,此时你又想保存log,那么你该如何去做呢?本节就来解决这个问题。 预备知识   首先还是先了解一下上节没有提到的知识,我觉得还是比较重要的,就是log分类的几种级别(

2015-12-14 15:59:49 823 1

原创 【Android测试】【第四节】LogCat——认识和使用

什么是LogCat   LogCat可以实时的捕捉系统中的log信息,这样在测试过程中,有助于帮助我们收集信息,当出现问题的时候,能够更加快速、准确的定位。 在哪?   如果你的eclipse是安装了ADT的,那么就在这里就能找到。  窗口打开后,用usb将手机和电脑连接,这时就能看到这样一个对话框了:  具体的LogCat中的每一列代表的属性,这些都比较简

2015-12-14 15:59:46 877

原创 【Android测试】【第三节】ADB——源码浅谈

前言  由于本人精力平有限,所以这里简单的说说ADB源码。  首先根据前面的理解,我们已经知道了ADB是“连接手机和PC的一个桥梁”,我们经常在PC端开发的时候,会用到eclipse这个工具,这里面有一个工具叫DDMS,如下图:   是不是发现通过DDMS在PC端可以看到手机的一些信息,其实呢 它就是通过 “ddmlib.jar” 来建立起ADB的。因此我们今天就通过反编译

2015-12-14 15:59:42 1079

原创 【Android测试】【第二节】ADB——无线模式

啰嗦两句啊。本来以为adb的一些用法一节就能讲完,没想到这个无线的模式还是比较繁琐的,因此打算单独拉出来说说,后续看有没有必要自己实现一个工具,能够一键切换到无线这样,这样就再也不用插着线干事了。好了,开始吧 无线能干什么  有Android设备的人大概都遇到过这样的场景:    1、用手机拍了好多照片,想拷到电脑上;    2、电脑上的有好多电影,想拷到手机里;   

2015-12-14 15:59:37 578

原创 【Android测试】【第一节】ADB——初识和用法

写在前面的话  感觉自己进入Android测试这行以来,虽然了解了不少Android的东西和自动化技术,但都比较零散。当然这也和半路入行,然后要快速的将自动化技术运用所学的业务上有关。于是决定利用工作之余的时间将Android测试相关知识进行一个整理,一来巩固一下自己学到的东西;二来可以让想学习Android测试的同学进行学习(希望能帮到新手)。  由于我之前学的是C++没有学过Jav

2015-12-14 15:59:32 505

原创 【Android测试】【随笔】在手机里用命令行创建中文文件夹

不知道为啥当时自己写了一段在手机里用命令行创建文件的代码,后来由于需求,新建的文件夹需要用中文表示,因为直观,然后就发现出现诡异的乱码。  尝试了各种的编码格式,最后终于成功了,上图就是各种编码格式出的岔子,第一个为正确的。  好了不多说了,上源码吧 1 public void ShellONECommand(String cmd) 2 {

2015-12-14 15:59:27 1322

原创 【Android开发学习笔记】【随笔】UI线程

概念UI线程 是Android中的主线程,涉及到UI方面的一些操作都需要在ui线程中进行操作在非ui线程中想操作ui,就会报错android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

2015-12-14 15:59:23 382

原创 【Android开发学习笔记】【第十课】运动事件 之——触摸屏

概念触摸屏 (TouchScreen) 和 滚动球(TrackBall)是Android 中除了键盘之外的主要输入设备。而这两个事件都可以用运动事件(MotionEvent)用于接收他们的信息 直接看代码吧package com.example.motion;import android.support.v7.app.ActionBarActivity;

2015-12-14 15:59:18 494

原创 【Android开发学习笔记】【第九课】重力感应

概念使用重力感应技术的Android游戏已经屡见不鲜,不知道自己以后会不会用到,所以先研究了一下。在网上学习了一下,貌似没有api,所以得自己去分析手机处在怎样状态下。注意: 下面提供的demo程序只能在有重力感应的真机上跑。 重力感应坐标系看一下模拟图:以屏幕的左下方为原点,箭头指向的方向为正。从-10到10,以浮点数为等级单位(2D编程的时候,是以屏幕左上方

2015-12-14 15:59:14 641 1

原创 【Android开发学习笔记】【第八课】五大布局-下

概念五大布局上一篇文章已经介绍了LinearLayoutRelativeLayout 这一篇我们介绍剩下的三种布局 FrameLayout五种布局中最佳单的一种布局。在这个布局在整个界面被当成一块空白区域,所有的子元素不能放倒指定的位置,只能放到这个区域的左上角,并且后面的子元素会直接覆盖前面的子元素。FrameLayout xmlns:androi

2015-12-14 15:59:11 423

原创 【Android开发学习笔记】【第七课】五大布局-上

概念Android程序各式各样,依靠的就是布局,先来看看布局都是怎么来的: 白色部分就是我们经常用的几种布局,主要说说介绍下面五大布局FrameLayoutAbsoluteLayoutLinearLayoutRelativeLayoutTableLayout 先介绍两种: 线性布局-LinearLayout在一个方向上对齐所有元素。可

2015-12-14 15:59:06 226

原创 【Android开发学习笔记】【第六课】Activity的生命周期-下

待定?先学习布局吧

2015-12-14 15:59:04 212

原创 【Java 进阶篇】【第二课】异常处理

概念异常处理的存在是为了:    允许程序员跳过无法处理的问题,继续开发后续的工作,或根据异常做出更加聪明的处理方式。 Java中存在一类对象叫“异常对象”。当异常情况发生时,就会暗战预先的设定,抛出(throw) 代表当前状况的对象;抛出其实就是一种特殊的返回方式,该线程会暂停,逐层退出调用,直到遇到异常处理器(Exception Handler)。异常处理器可以捕捉

2015-12-14 15:58:59 239

原创 【Java 进阶篇】【第一课】String类

引用String类包含在java.lang包中。这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class)。我们不需要显式的使用import引入String类。 创建String类是唯一一个不需要new关键字来创建对象的类。使用的时候需要注意 String s = "Hello World!";

2015-12-14 15:58:55 314

原创 【Java 基础篇】【第十课】多态

Java的多态使用方法和C++基本是一样的。看代码吧。 1 public class ten 2 { 3 public static void main(String[] args) 4 { 5 Human guest = new Human(); 6 BrokenCup hisCup = new BrokenCup(

2015-12-14 15:58:52 304

原创 【Java 基础篇】【第九课】继承

继承就是为了提高代码的复用率。利用继承,我们可以避免代码的重复。让Woman类继承自Human类,Woman类就自动拥有了Human类中所有public成员的功能。我们用extends关键字表示继承:看代码吧: 1 class Human 2 { 3 /*因为类中显式的声明了一个带参数构造器,所以默认的构造器就不存在了,但是你在子类的构造器中并没有显式 4

2015-12-14 15:58:48 187

原创 【Java 基础篇】【第八课】package包

学习Java以来,第一次感觉稍微有点不好理解的,下面说说吧。存在意义:包的存在就是为更好的组织结构包的创建:只要在程序的最前面加入 Package ******,就可以了,一般都喜欢写 com.carter.animal 等等之类的东西,刚开始以为这个东西是一个很复杂的东西,其实就是代表的一个目录结构用的,如果刚开始理解不了的话,完全可以不用写这么多的".",我就是被这个点给搞

2015-12-14 15:58:45 482

原创 【Java 基础篇】【第七课】组合

我所理解的组合就是在一个类当中又包含了另一个类的对象。这样的方式就是组合吧:电池是一个类,有电量手电筒需要电池 看代码吧: 1 // 电池类 2 class Battery 3 { 4 // 充电 5 public void chargeBattery(double p) 6 { 7 power += p;

2015-12-14 15:58:40 203

原创 【Java 基础篇】【第六课】接口interface

Java提供的这个interface的语法,目的就是将接口从类中剥离出来,构成独立的主体。首先加入我们定义了这个杯子接口:interface Cup{ void addWater(int w); void drinkWater(int w);}interface当中,注意亮点:1.不需要定义方法的主体2.不需要说明的可见性(默认为public

2015-12-14 15:58:38 212

原创 【Java 基础篇】【第五课】类的构造函数

Java 也有自己的构造函数,如同c++一样有两个特征:1.构造函数的名字和类的名字相同2.构造函数没有返回值 下面来看一下这个例子: 1 public class test 2 { 3 public static void main(String[] args) 4 { 5 Human aman = new Human(

2015-12-14 15:58:35 260

原创 【Java 基础篇】【第四课】初识类

看看Java中如何定义一个类,然后用来调用的,这个比较简单,直接看代码吧。 我发现的类和C++不一样的地方:1.Java中类定义大括号后没有分号;2.好像没有 public、private等关键字(我也是跟着一个教程学的,至少刚开始没看到,补充一下后来知道有了写法是,直接 private int num; 这样在变量类型的前面直接加)3.感觉类里面直接就写函数的实现了,不像C+

2015-12-14 15:58:31 249

原创 【Java 基础篇】【第三课】表达式、控制结构

这两天再看敏捷开发流程,我这个算是敏捷博客吗? 哈哈o(∩_∩)o 1 package a.b; 2 3 public class Three 4 { 5 static void Expression() 6 { 7 System.out.println("一、学习基本的表达式"); 8

2015-12-14 15:58:28 409

原创 【Java 基础篇】【第二课】基本数组类型

就像第一章所说一样,这次学习为了快,因此说明性的文字就不想写太多了,直接帖代码吧,代码当中尽量加一些注释: 1 package a.b; 2 3 public class test 4 { 5 6 static void BasicVariables() 7 { 8 //一、变量的类型的学习 9

2015-12-14 15:58:26 309

原创 【Java 基础篇】【第一课】HelloWorld

有点C++基础,现在需要快速的学会java,掌握java,所以就这样了,写点博客,以后看起来也好回顾。1.第一步 javaSDK和Eclipse下载就不说了,搞定了这两样之后;2.打开Eclipse,新建一个项目:File->New->Java Project 点击finish即可 3.新建完项目之后,在src右击,选择建立类,方法按照图片来: 点击

2015-12-14 15:58:21 476

原创 【Android开发学习笔记】【第五课】Activity的生命周期-上

今天学习Activity当中的七个生命周期函数:  首先得说一个事情,就是在代码当中如果加入了 System.out.println(" ------");之后,如何查看这里面的输出内容    打开之后只输入“Filter Name”和“by Log Tag” 即可    添加成功后可以看到     本次学习主要总结如下:  1、onCreate()  Ac

2015-12-14 15:58:16 322

原创 【Android开发学习笔记】【第四课】基础控件的学习

通过一个简单的例子来学习下面几种控件:  1.TextView:简单的文本显示控件  2.EditText:可以编辑的文本框  3.Button:按钮  4.Menu:这里指的是系统的Menu  5.Toast:消息提示控件,类似于MFc的tip(不知道理解的对不对)  顺便用到上一次学习的多个Activity之间传递数据的技术,来做一个小的计算乘法的case  步骤:

2015-12-14 15:58:12 328

原创 【Android开发学习笔记】【第三课】Activity和Intent

首先来看一个Activity当中启动另一个Activity,直接上代码说吧:   (1)首先要多个Activity,那么首先在res-layout下新建一个 Other.xml,用来充当第二个Activity的布局文件    xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://sche

2015-12-14 15:58:07 375

原创 【Android开发学习笔记】【第二课】Activity学习

什么是Activity,就是我们所看到的        需要理解以下四句话:    1.一个Activity就是一个类,并且这个类需要集成Activity;    2.需要重写OnCreat方法           3.每个Activity都需要在AndroidManifest.xml中进行配置              xml中加入了说明应用程序启动时先运行这个A

2015-12-14 15:58:03 285

原创 【Android开发学习笔记】【第一课】初识New Project,工程文件介绍

初学者新建一个Andriod工程后,往往不知道Pakage Explorer区域的每个文件是什么作用,今天学习了一下,自我总结一下。    1.先新建一个工程            2.输入名称,以及支持的SDK版本等(这些可以暂且都默认了)            3.创建成功之后,左边区域出现工程相关的文件                接下来一个个介绍吧    

2015-12-14 15:57:58 416

原创 Android 环境快速搭建-详细步骤-win7-64bit

电脑装了win7 64位的系统,重新来搭建了安卓环境,发现有一种非常便捷,快速的方法就可以搭建起来了~    步骤一:下载java sdk                进入http://www.oracle.com/us/sun/index.htm,选择download 下的 Java for Developers                                 

2015-12-14 15:57:53 509

空空如也

空空如也

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

TA关注的人

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