自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

1024工场

新技术,新未来,尽在1024工场...

  • 博客(272)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android自动化测试:Appium简介

一、什么是Appium一个自动化测试开源工具;支持Android和IOS平台原生应用、移动Web应用和混合应用;一个跨平台的工具,允许测试人员使用同样的接口基于不同的平台(Andorid,IOS)写自动化测试脚本;二、Appinum的理念无需为了自动化,而重新编译或者修改我们的应用(黑盒测试);不必局限于某种语言或者框架来写和运行测试脚本;不应该在接口上重复造...

2018-03-31 10:38:30 8095

原创 ARCore:相机预览背景绘制

在完成了OpenGL ES和ARCore基本的实现后,下一步肯定就是图像绘制了。在Google为ARCore提供的Demo中,主要进行了相机预览、检测点云、检测平面和Android小机器人的绘制。本节我们将跟大家介绍相机预览背景的绘制过程和原理。一、OpenGL ES渲染管线OpenGL ES渲染管线其实就是渲染流水线,实质上指的是一系列的绘制过程。这些过程输入的是待渲染3D物理的

2018-01-01 23:40:39 4473 2

原创 ARCore:OpenGL ES环境搭建

估计大部分Anroid开发的同学,对OpenGL ES的了解可能也仅仅停留在三维图形的渲染,入门模板代码的编写阶段。在ARCore开发中,如果你选择使用Android+OpenGL ES的开发技术栈,就需要大家深入的学习和了解OpenGL ES技术了。那么接下来我们就分如下主题和大家来唠唠:一、OpenGL ES概述1. Open GL是做什么的?高效、简洁的开放图形库接口,

2017-12-04 00:41:26 2714 1

原创 ARCore:ARCore开发的起步

已经是第7章节了,终于可以开始正式接触到我们梦寐以求的ARCore了,相信大家应该都有一点点小激动了吧。那么下面我们就开始讲解如何进行ARCore的开发。一、Session简介初看到Session,大家都摸不到头脑。最直接的解释,它是ARCore API的一个类com.google.ar.core.Session。它管理了AR系统的状态,有自己的生命周期,开始和停止访问摄像头图像帧

2017-11-26 10:50:30 4855 2

原创 ARCore:ARCore带来的新概念

一、ARCore能做什么 在Google官方提供的Demo中,实现了这样一个功能。当我们在照相机预览的空间轻轻点击屏幕的时候,在空间中就生成一个Android小机器人,如下图所示: 当我们更换手机的位置或者照相机的观察角度的时候,大家从如下图中有没有发现,Andorid小机器人所在的“位置并没有改变”,就像是真实的存在你的世界一样。 二、ARCore是如何做到的 那么ARCore是如何完

2017-11-23 01:39:33 4678

原创 ARCore:ARCore的初体验

在正式跟带大家进入到ARCore开发之前,让大家体验一下ARCore还是很有必要的。现在就带着大家一起来感受一下来自Google AR实验室的几个作品,相信大家已经迫不及待的想体验和试试ARCore的功能了。1.Draw And Dance 你的自己会跳舞的线条人。 Draw And Dance让你创建自己会跳舞的AR线条人,它对周围的音乐和声音做出响应—比如你的声音,你狗的叫声,最重要的是你的

2017-11-14 17:46:07 4049 1

原创 Kotlin:学任何语言都逃不掉流控制

一、If表达式在Kotlin中,if是一个表达式,它会返回一个值(因此不需要三元运算符);if的分支可以是代码块,最后的表达式作为该块的返回值;if作为表达式而不是语句,需要有else分支;// 传统用法var max = aif (a < b) max = b// 使用 elsevar max: Intif (a > b) { max = a} else { m

2017-09-10 12:53:42 1260

原创 ARCore:从Android Studio开始

ARCore为许多最流行的开发环境提供SDK。这些SDK为所有基本的AR特性提供原生API,如运动跟踪、环境理解和光估算。有了这些功能,你就可以建立全新的AR体验,或者增强现有的AR功能应用。那么现在我们就从Android Studio开始来感受一下ARCore。一、设置开发环境在开发和运行ARCore应用之前呢,我们需要安装Android Studio2.3或者更高版本,Android SDK 7

2017-09-07 00:54:05 5736 2

原创 ARCore:从哪里冒出来的ARCore

一、ARCore的横空出世前几天的谷歌开发人员日,技术专家Tom Slater连线在波兰克拉科夫的ICE会议中心,在YouTube直播中荣重推出了ARCore。苹果今年6月份发布的ARkit,对于开发者和用户都极度友好,它通过iPhone现有的摄像头与陀螺仪就能实现绝大多数AR体验。相比之下,Tango还需要红外深度感知传感器的配合。ARCore的发布,普遍被认为这是谷歌对象ARKit的一次反击。二

2017-09-07 00:08:11 3499

原创 Kotlin:基本类型都是对象,原生类型将成为回忆

在Kotlin中,所有东西都是对象,我们可以在任何变量(如基本类型:数字、字符、布尔、数组与字符串等)上调用成员函数和属性。一、数字1. 内置类型种类Kotlin提供了如下内置类型来表示数据(和Java很近); 类型 比特宽度 Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 Java对比:在K

2017-08-08 01:28:21 1700

原创 Kotlin:包结构有那么点任性

一、包的声明声明在源文件顶部;目录与包的结构无需匹配,源代码可以放在文件系统任意位置;源文件所有内容(无论是类还是函数)都包含在声明的包内。如果没有指明包,该文件的内容就属于无名字的默认包;//1.包声明位于Kotlin源文件顶部;2.包结构与目录无需匹配package foo.bar//3.属于包内,全名foo.bar.bazfun baz() {}//3.属于包内,全名foo.ba

2017-08-06 12:48:40 1304

原创 Kotlin:所有的一切还是从Hello Kotlin开始

Kotlin和Java也一样可以有多种的开发方式,我们可以根据自己的实际需求进行选择。如下: 1. 终端命令行进行Kotlin的编写、编译和运行,类似与Java中的javac编译、java运行; 2. 使用Intelliy IDEA进行开发,一般用于运行和开发控制台应用程序等; 3. 当然少不了我们的Android Studio,不用多说它一般用于开发Android程序;本篇文章中,我们会带着

2017-07-29 18:16:32 5870

原创 Kotlin:Google让我们使用Kotlin的理由

在2017 Google I/O大会的主旨演讲中,宣布Kotlin语言将在Android上正式受到官方支持。相信开发人员,尤其是Andoid开发者都或多或少的听过Kotlin,它并不是横空出世的新东西。既然Google已经做支持了,那么我们也有理由深入学习一下。 那么Google有什么理由?Kotlin到底有什么优点?让我们使用Kotlinne ?下面来一起探讨一下。一、非常适合Android开发

2017-07-23 18:06:34 2622

原创 Android 工具:TraceView

一、TraceView工具TraveView采集和分析方法的执行时间和数据,用于跟踪你的代码中的性能下降问题;二、启动TraveViewAndroid Studio->Tools->Android->Android Device Monitor->DDMS; 三、使用TraveView这里有两种方式,来生trace日志文件: 1. 在你的代码中使用Deb

2017-06-29 12:09:34 917

原创 Android 工具:Profile GPU Rendering

一、Profile GPU Rendering工具Profile GPU Rendering工具对于相对于16毫秒每帧的基准花了多少时间来渲染UI,给了一个快速可视化的展示: 1. 它帮你快速查看一个UI窗口有多少超过了16毫秒每帧的目标; 2. 确定是否渲染线条的任何部分在处理时间上都超出了; 3. 寻找在用户或者程序操作相关的渲染时间峰值;二、启动Profile GPU Rendering

2017-06-21 23:10:34 2136

原创 Android 工具:Show GPU Overdraw

一、Show GPU Overdraw工具Show GPU Overdraw工具显示了app什么地方可能执行了必要之外更多的渲染,帮助你查看什么地方可以减少过渡渲染;二、启动Show GPU OverdrawSettings->Developer Options->Hardware accelerated rendering->Debug GPU overdraw->选择show

2017-06-11 21:04:23 1530

原创 Android Things:用户驱动-传感器

一、传感器简介Android传感器框架支持多种传感器类型来测量物理环境的状况,并且从应用程序读取原始数据。使用传感器驱动,你的应用可以扩展框架,并且添加新的通过Peripheral I/O连接的传感器设备; 和Android内置的传感器一样,来自这些传感器的数据通过相同的SensorManager API进行分发。你的应用可以实现一个驱动程序来连接一个已知类型的新传感器,如加速度计,或者一个And

2017-05-16 11:24:27 3208 3

原创 Android Things:外设I/O接口-SPI

一、接口简介串行外围接口(Serial Peripheral Interface)设备通常需要快速的数据传输速率。SPI适合高带宽使用情况,如外部非易失性存储器和图形显示,许多传感器除了I2C也支持SPI。SPI总线是一种同步的串行接口:这意味着它依赖于共享的时钟信号来同步设备之间的数据传输。控制时钟信号的设备被称为master。其它所有连接的外设被认为是Slaves。每个设备连接到同一组数据信号以

2017-05-02 00:00:53 3946

原创 Android工具:Hierarchy Viewer

一、配置Hierarchy Viewer非root手机,Android4.0或者更低,安装和配置ViewServer(https://github.com/romainguy/ViewServer);root手机,Anddroid4.0或者更低,不需要任何配置;Android4.1或者更高,在开发设备上设置环境变量ANDROID_HVPROTO;二、启动Hierarchy Viewer在AND

2017-04-23 11:39:37 2802

原创 Android Things:外设I/O接口-I2C

一、接口简介内部集成电路(IIC或者I2C)总线使用小数据负载连接简单的外部设备。传感器和执行器是常见的I2C使用案例,例如包含加速度计,温度计,LCD显示器,和电机驱动。I2C总线是一种同步的串行接口:这意味着它依赖于共享的时钟信号来同步设备之间的数据传输。控制时钟信号的设备被称为master,其它所有连接的外设被认为是Slaves,每个设备连接到同一组数据信号以形成总线。I2C设备连接使用3

2017-04-11 15:06:58 7077 3

原创 Android Things:“1024工场”店铺开张啦!树莓派套装首发—专为Android Things打造!

"1024工场"店铺开张啦!开张啦!全场包邮!全场顺丰!经过我们小伙伴的不懈努力和精心筹备,容重推出了我们的首款产品树莓派套装—专为Android Things打造。  该套装遵循Google官方标准精心挑选,针对Android Things开发完美搭配!一次性购买,全方位满足,较少你东寻西觅的烦恼!“1024工场”倾情推荐,你值得拥有!温馨提示:为了让你后期能更方便进入店铺选购商品、查看订单。你

2017-03-25 14:41:11 13167

原创 Android Things:用户驱动-输入驱动

一、驱动介绍输入用户驱动程序为应用程序提供接口,向Android的输入管道注入事件。有了这个API,应用程序可以使用Peripheral I/O模拟一个人机界面的设备(HID)或者连接外部硬件到输入系统。比如说,我们可以使用开关按钮GPIO的信号输入,通过输入驱动API模拟呈键盘上按键的输入事件,下面我们会具体演示如何实现。二、使用步骤实现输入用户驱动,有如下步骤:1.创建驱动:使用InputDr

2017-03-22 01:14:00 2196

原创 Android Things:外设I/O接口-UART

一、接口简介UART(Universal Asynchronous Receiver Transmitter)是用来和外围设备交互数据的通用接口,如GPS模块,LCD显示器,XBee收音机等复杂的外围设备,通常使用UART端口(通常简称为串行端口)来通信。 它是通用的:因为数据传输速率和数据字节格式是可配置的。 它是异步的:因为没有时钟信号来同步两个设备之间的数据传输,设备的硬件在一个先进先出的缓冲中收集所有的输入数据,直到你的app读取它。 它是全双工:意味着可以同时发送和接口数据。 它

2017-03-17 11:30:15 6152 1

原创 Android Things:外设I/O接口-PWM

Pluse Width Modulaion(PWM)是通过数字输出引脚向外部设备输出比例控制信号的常用方法。例如,伺服电机使用输入PWM信号的脉冲宽度来确定它们的旋转角度,LCD显示器基于PWM信号的平均值来控制它们的亮度。PWM是数字信号(即方波),根据指定的频率和占空比振荡: 频率(以赫兹表示)描述了输出脉冲重复多少次; 周期是每个周期需要的时间,并且是频率的倒数; 占空比(以百分数表示)描述了该频率窗口内的脉冲宽度;例如,一个PWM信号设置为50%的占空比,每个周期的一般是活跃的。

2017-03-14 11:22:05 3214

原创 Android Things:外设I/O接口-GPIO

一、接口简介通用输入/输出(General Purpose Input/Output),简单的传感器使用这个API,如运动探测器、距离探测器,和电平开关使用一个二进制值-高或者低来报告它们的状态。 它引脚提供了可编程的接口,来读取二进制输入设备的状态(如开关按钮)或者控制二进制输出设备的开关状态(例如LED等)。你可以配置GPIO引脚为具有高低状态的输入或者输出: 作为输入:外部源决定这个状态,你的app可以读取当前的值或者对状态的变化做出反应。 作为输出:你的app配置引脚的状态。

2017-03-11 11:33:27 5299

原创 Android Things:撸起袖子来创建第一个Things工程

在前面的章节,我们利用官方的sample-simplepio项目的blink模块,给大家演示了如何导入和运行现成的Android Things工程。那么这个章节,我们来手把手的给大家演示,如何从零开始创建、开发和运行一个Android Things项目。1.前期准备在你开始创建你的Android Things项目之前,你必须完成以下事情: 更新你的SDK工具为24或者更高版本,更新的SDK工具可以让你能构建和测试Things应用。 更新你的SDK为Android 7.0(API 24)或者更高,

2017-03-04 00:33:07 12657 5

原创 Android总结:内存泄露

一、内存泄露简介1.什么是内存泄露?内存泄露对于我们来说是不可见的,它是出现在堆内存中,我们可以通过LeakCanary,MAT等工具来检测程序中是否存在内存泄露。2.内存泄露什么时候发生?当一个对象已经不需要在使用了,本该被回收的时候,而又有另外一个正在使用的对象持有它的引用从而导致它不被回收,这就产生了内存泄露。3.内存泄露有什么坏处?内存泄露是产生OOM的主要原因之一,Android系统为每个应用程序分配有限的内存,当内存泄露发生的较多的时候,就难免会造成内存溢出导致应用Crash。

2017-02-22 11:51:42 792

原创 Android工具:LeakCanary—内存泄露检测神器

一、LeakCanary简介LeakCanary是Square公司开源的一个检测内存的泄露的函数库,可以方便地和你的项目进行集成,在Debug版本中监控Activity、Fragment等的内存泄露;LeakCanary集成到项目中之后,在检测到内存泄露时,会发送消息到系统通知栏。点击后打开名称DisplayLeakActivity的页面,并显示泄露的跟踪信息,Logcat上面也会有对应的日志输出。同时如果跟踪信息不足以定位时,DisplayLeakActivity还为开发者默认保存了最近7个dump文

2017-02-13 23:16:00 18401

原创 Android Things:来跑一个Demo耍耍

一、Demo运行实践这里我们以官方提供的sample-simplepio项目的blink模块为例,这样给大家演示一下如何使用Android Studio和树莓派3开发板,进行Android Things项目的开发;

2017-02-07 00:23:43 9971 4

原创 Android Things:让你陌生的面包板

一、电子元器件介绍1.面包板面包板简介面包板是电子实验不可缺少的一款重要工具。它有如下两个优点: 简单:由于板子上很多小插孔,各种电子元器件可根据需要任意插入或拔出,免去了焊接的工序,节省了电路的组装时间; 复用:元器件可以重复使用,非常适合电子电路的组装,调试和训练;面包板规格面包板的大小规格不同,如170孔(35*47mm),400孔(85*55mm),800孔(165*55mm)等;面包板的

2017-02-06 17:18:55 3317 2

原创 Android实践:动态加载

在讲解Android的动态加载之前,先给大家脑补一下Java的类加载机制,这样有利于大家对后面的知识的讲解: 1.当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多复杂,该程序启动了多少个线程,它们都处于该Java虚拟机进程里; 2.当程序主动使用某个类时,如果该类还未加载到内存中,则系统会通过加载、连接、初始化3个步骤来对该类进行初始化; 类加载:将类的class文件读入内存,并为之创建一个java.lang.Class对象,也就是说

2017-01-22 23:03:23 1112 4

原创 Android Things:树莓派3上手就是这么简单

一、树莓派简介官方推荐的开发板有Intel Edison、NXP Pico i.MX6UL和Raspberry Pi 3(树莓派3)。树莓派是世界上最流行的单板计算机,3 Model B是最新的版本,我们后面就使用它给大家介绍Android Things。它提供了如下配置:

2017-01-16 01:57:49 27754 2

原创 Android Things:你应该了解的Android Things知识

Google在近期推出了物联网操作系统Android Things,它可以运行在有线扬声器、智能温控器、安全摄像头、路由器等设备上,Google的理念是通过Android Things让Android开发者与公司能够以他们过去的开发方式继续开发物联网硬件设备。结合Google为物联网推出的通讯协议Weave,Android Things将会在Google的物联网战略中发挥重要作用。

2017-01-16 01:41:32 4911

原创 Android工具:被你忽视的Lint

一、Lint简介测试你的Android应用除了确保它满足功能要求,确保代码没有结构问题也是非常重要的。结构不好的代码可能会影响你的Android应用的可靠性和效率,并且使得你的代码难于维护。例如,如果你的XML资源文件包含没有使用的命名空间,它会占用空间并导致不必要的处理。其它结构性问题,如使用过时的元素或者调用目标API版本不支持的API,可能会导致代码无法正常运行;Android Studio

2017-01-07 23:52:09 5679

原创 Android总结:命名空间

一、命名空间简介1.命名空间作用作用:提供避免元素命名冲突的方法,里面存放的是特性属性的集合;例如:Android的View存在id属性—代表View的唯一id,而你自定义的View也想自定义一个id属性—代表该类型View编号。那么这个时候命名空间就派上用场了,你可能会分别生成android:id和myview:id代表两个属性(android和myview即命名空间的名称);2.命名空间分类在Android中的命名空间可分为3种,如下: android命名空间:xmlns:android=

2016-12-30 15:44:10 13693 3

原创 Android UI:使用矢量图,抛弃PNG

一、矢量图简介最近在进行Android App“瘦身 ”的时候,了解到矢量图(VectorDrawable)相关概念。从Android5.0(API level 21)开始,有两个类支持矢量图:VectorDrawable和AnimatedVectorDrawable。VectorDrawable是一个矢量图,定义在一个XML文件中的点、线和曲线,和它们相关颜色的信息集合。AnimatedVect

2016-12-23 21:18:00 17312 4

原创 Android实践:xUtils3探究

一、xUtils3简介xUtils是一个android使用工具框架,包含了如下几大功能: 注解定义:提供了布局,视图和事件等注解,能够简化相关的Android代码; 网络请求:支持GET、PUT、DELETE和PUT等请求方式,封装了异步Task,支持FIFO和FILO优先级线程池,提供了同步异步请求,支持https、cookie和硬盘缓存等; 图片绑定:封装了内存和硬盘缓存,优化了Bitmap加载过程,处理了ViewHolder产生的图片错乱问题,支持https等; 数据封装:封装了相关

2016-12-11 00:25:56 2644

原创 Android实践:MVC到MVP的演化

一、MVC1.简介MVC是目前大多数企业采用J2EE的结构设计,主要适用于交互式的Web应用。在Android中也有体现和使用,但是存在一定的弊端(下面将讲述),于是才有了Android官方推荐的MVP。

2016-12-02 21:41:08 2167

原创 Android实践:自实现Memory/DiskCache逻辑

在Android开发过程中,我们接触的缓存技术主要分为内存缓存和磁盘缓存。它们一般会被用来缓存http返回result、下载后渲染的Bitmap和文案等等。虽然现在已经有了比较成熟的缓存框架和工具,为了能让大家更加了解底层的实现和使用,下面我们就分别从原理和实践方面,给大家介绍下这两种技术:

2016-11-26 19:10:29 5297

原创 Android安全:代码注入

一、常用的Smail注入代码 在逆向分析APK文件的时候,我们往往需要注入一些自己的代码方便调试,如增加调试Log信息等。常用的Smail注入代码如下: 1.增加调试Log信息: Log.i("test","Log Test"); 2.增加堆栈跟踪信息: new Exception("print trace onCreate").printStackTrace(); 3.增加MethodTracing信息: Debug.startMethodTracing("qprojecttract");

2016-11-25 05:18:30 3877

iPhone开发秘籍(第2版)

详细讲解了IOS开发的内容,并有实战例子讲解。

2013-03-06

Android UI设计指南

经典的Android UI 设计规范,让你的Android开发更光彩..

2012-04-24

空空如也

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

TA关注的人

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