自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苦心人天不负

明知不可能,还是要继续告诉自己。

原创 1.6API2拍摄RAW图

在前一节我们分析了yuv数据的获取方法,这一节进行的raw数据拍照,实际上与yuv数据没有本质的区别。 区别仅仅是ImageReader的format为ImageFormat.RAW_SENSOR,并且在createCaptureSession方法中将这个ImageReader的surface传...

2020-06-04 15:12:59 54 0

原创 1.5 Camera API2输出yuv数据

在前面我们已经知道createCaptureSession方法的第一个参数会传入一个list,一般这个list会有三个值,用于preview的SurfaceView的surface,用于保存拍照数据的ImageReader的surface,和缩略图的surface。如果是拍照模式,ImageRea...

2020-06-03 17:56:44 57 0

原创 2.6camera session创建过程

如第一章所述,得到CameraDevice对象后就可以创建session了,还是以createCaptureSession为例,这是一个抽象方法,我们已经介绍过,它的实现在CameraDeviceImpl中。 方法首先将传入的Surface构建OutputConfiguration,Outp...

2019-12-23 17:45:47 96 0

原创 2.5 Camera open拾遗

前面把Camera open在Framework的流程已经梳理清楚,但是还有一些细节值得一提。 CameraDevice.StateCallback与Executor 在open方法中传入了一个Executor对象,这个对象是在执行Callback时使用的。作为一个接口, CameraDevi...

2019-12-16 18:04:50 52 0

原创 2.4camera多进程互斥控制

上一节我们提到过handleEvictionsLocked方法是处理相机进程互斥的。这是一个比较重要的方法,随着现在安卓设备的发力点集中到相机上,同一个应用内的多相机的调用,甚至是不同应用打开不同相机的需求都开始出现,从Framework层面来说就是这里在进行管理。 根据相机使用的经历,我们应该...

2019-12-09 16:31:08 149 0

原创 2.3camera service的connectDevice的过程

在上一节中,我们梳理了camera open在framework中涉及的类和它们的主要功能,但是我们跳过了一些关键的细节,所以在这一章节中,我们将首先来分析connectDevice的过程。 首先我们来看在ICameraService.aidl中的定义, 接口定义了四个变量callba...

2019-12-02 16:24:11 160 0

原创 2.2Camera open在Framework中的过程

在前面的内容中,我们提到过CameraManager类的主要用途是open cam­era,这一节我们将详细梳理这一过程在Framework中的类和逻辑。 SDK提供的方法最终调用openCameraDeviceUserAsync方法,通过观察我们可以知道最核心的代码只有两行, 其中第一句...

2019-11-27 17:51:01 109 0

原创 2.1 Android启动与CameraService进程加载

从这一章节开始,笔者将对Camera的Framework框架进行分析。 对于Camera Framework框架而言,其核心就是CameraService,所以本节将首先探究Camera service是什么,Camera Service是怎么来的。 Android框架启动过程 Androi...

2019-11-25 16:04:12 133 0

原创 1.4Metadata与Characteristics

在上一节我们已经学习过Camera的参数通过Session下发到HAL层,这一节我们将详细探索CameraMetadata。 在公开的SDK中,除了CameraMetadata类之外,还存在三个继承它的子类,分别是CameraCharacteristics、CaptureRequest、Cap...

2019-11-20 11:17:10 49 0

原创 1.3Camera2 Session机制详解及Camera1的对比

想要理解API2的Session机制,不能简单的只从Camera看,而是要结和Sesion本身的概念来看。 一、Session机制 1、Web应用中的Session 计算机领域的Session概念主要来自于Web通信,在网络应用中,称为会话控制。 “Session对象存储特定用户会话所需的...

2019-11-18 18:31:11 186 0

原创 1.2Camera Preview流程及源码分析

Camera API2的预览实现在网上有非常多的代码可以参考,包括Google官方提供的Demo。直接看代码,模仿、改写当然是最快的实现方式,但如果其中的逻辑关系可能没有捋顺清楚,在没有参考代码的情况下,能否同样实现相关功能就值得商榷了。 1API2架构图 这个图是一个常见的用于展示A...

2019-11-14 18:29:43 108 1

原创 1.1Android Camera源码路径及类简介

Camera API是Android APP开发的主要方式,Android 9.0主要有1.0和2.0两个版本。目前Google在全面推API2,但是应用市场上的主流应用大部分依然使用的是1.0,如QQ、微信等;而一般手机自带的相机应用都是Camera API 2. 本文及后续都将以API2为...

2019-11-13 11:00:43 117 0

原创 Android Camera开发完全手册

随着Android版本迭代,Camera的重要性也日益凸显。Camera的数量从后置单颗发展到最新的后置五颗模组;分辨率从后置200万发展到惊人的一亿像素。Android Camera几乎每一代都在发生翻天覆地的变化。这些变化是作为终端用户直观感受得到的,而作为从业者同样能够感受到来自软硬件的巨大...

2019-11-12 16:36:00 205 0

原创 关于安卓Android studio Didn't find class "com.xx.MainActivity" on path: DexPathList[[zip……的一种解决

这样的问题,现象基本上都是一个运行好好的程序有一天突然在某一款手机上无法运行,打开就会crash,并报错。 看网上的原因很多。 由于没有使用MultDex,所以不是相关原因; 没有引入任何.so文件,所以不是相关原因; Android Studio 3.5没有找到instant run设置...

2019-09-05 15:21:28 1163 0

原创 写在一七年底

回头去看,上一次在CSDN上写博客已经是一年半以前了。 每一次回首去看,总觉得心里空落落的;年龄越是增长,心里就越发的焦虑。 玩了三年的手游感觉肝不动卖了号;买了几本书没能翻几页就弃之不理了;十年的网游已经几个月没有在登陆过了;试着交往了一个女朋友,总觉得不是我想要的相处方式,一年还是分手了;...

2017-12-27 22:40:17 211 0

原创 Google Gallery for Android 4.4源码分析以及主UI修改——Gallery整体结构

最近在做原生Gallery的UI修改和和功能改进工作,所以大约半个月的工作,终于对Gallery的主UI部分有了一定了解,对Gallery的整体结构有了一定认识。在修改的过程中遇到了各种各样的坑,好在UI修改部分的工作已经接近尾声,下一阶段主要是新功能的添加。 常言道:好记性不如烂笔头。所以将G...

2016-04-20 20:51:28 1683 2

原创 python登陆百度网盘并读取自己的所有文件,输出到文本文件中

这两天帮一个朋友写了一个小程序,需求是导出他自己的百度网盘所有文件的目录结构。 以前注册过一个百度开发者,知道有PCS服务,里面有提供类似的接口,所以就一口答应下来,但是我too naive。 去查文档的时候发现百度已经关闭了pcs服务。 此时,我的心情是崩溃的,因为已经有段日子没写Pyth...

2016-04-11 23:15:06 6290 1

原创 夯实基础——Java常用包和第三方jar包

一、Java常用包 java.lang--语言包:Java语言的基础类,包括Object类、Thread类、String、Math、System、Runtime、Class、Exception、Process等; java.io--输入输出包:提供与流相关的各种包; java.awt...

2016-03-20 14:25:55 4609 0

原创 夯实基础——继承、super和final关键字

Java通过单继承降低复杂度,又通过对接口的实现间接地实现多继承。 /** * @author frozen cloud * @继承是面向对象的又一个重要特征,Java使用extends关键字类实现继承,java是单继承。 * @被final关键字和private修饰的成员不可以被继承...

2016-03-20 12:37:28 316 0

原创 夯实基础——static关键字

static 关键字是常见关键字之一,static关键字的一个常见场景就是单例模式,本文仅提供static的基本用法和注意点。 /** * @author frozen cloud * @static关键字修饰的成员是静态成员,未被static修饰的成员是实例成员; * @也就是说st...

2016-03-20 11:59:34 303 0

原创 夯实基础——类、抽象类和接口的关系

类和对象是面向对象语言的核心概念。类是Java封装性的提现,外部不需要知道类中方法的实现过程,只需要通过对象调用方法。 /** * 1.接口只能被实现,不能被继承; * 2.接口只能继承接口,不能继承一般类、抽象类; * 3.抽象类与一般类类似,可以继承抽象类,实现接口; * 4.抽...

2016-03-20 11:11:58 319 0

原创 夯实基础——从键盘输入的两种方式

从键盘中输入内容是人机交互的一部分,在写一些小程序的时候也经常会被用到。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.S...

2016-03-18 22:38:19 500 0

原创 夯实基础——流程控制

/** * @author frozen cloud * @一切语言的流程控制都是无外乎三点: * @1.顺序; * @2.条件; * @3.循环; */ public class ProcessControl { public static void main(String[] ...

2016-03-15 14:48:08 605 0

原创 夯实基础——Java基本数据类型、应用类型和转换

年后回来又换工作了,面试了几家因为没有太多做准备,在一些基础问题上卡了壳,这是一个比较闹心的问题。 工作的时候往往有一些是接触不到的问题,但是偏偏又很重要也很基本。 所以趁着还没有开始下一份工作的这段时间快速的把java基础、数据接口、算法什么的串一遍,由于是想到什么写什么所以可能不那么有逻辑性。...

2016-03-15 12:52:58 444 0

原创 Duplicate files copied in APK META-INF/license.txt

今天在尝试使用AndroidAnnotations框架的REST API时,在导入Spring for android包后仅编译的话不会报错,但是当运行时无法编译通过,并报一下错误: Error:Execution failed for task ':app:transformReso...

2016-01-10 13:41:29 3410 0

原创 Android广播机制知识概要

关键字:Broadcast用于发送广播;BroadcastReciver用于接收广播。 广播的意义:简言之,群发消息,定点接收,分别处理。 所以在理解广播时存在以下几个问题: 1)谁发广播?怎么发? 2)信息如果传递? 3)谁接收广播?怎么接收? 首先,来说明第二个问题。在Android中,...

2015-12-20 21:50:56 504 0

转载 第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建

【声明】  欢迎转载,但请保留文章原始出处→_→  生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4456420.html 联系方式:smyhvae@163.com    【系列...

2015-12-13 12:25:15 923 0

原创 Python安装第三方模块的方法

1.在命令符窗口进入模块所在目录,执行python setup.py install命令。   如果使用这个命令时报错,需要安装setuptools库,安装方法同上。 2.使用pip安装第三方库。 3.easy_install方式。   用于安装egg扩展名的包,egg可以认为就是zip,只是扩展...

2015-11-19 23:27:56 592 0

原创 面向对象编程以及Python面向对象

一、面向对象编程 面向对象编程(OOP)作为一种方式,相对于面向过程更加的贴近人的思维习惯。 面向对象是将一个整体问题划分为若干个模块,通过块与快之间的交流来解决问题;而面向过程编程是将一个问题按照解决的步骤一二三四的一个个方法去解决。 面向对象有三大特点:多态、封装、继承。两个主要...

2015-11-04 22:59:14 1210 0

原创 scrapy学习——选择器

之前已经学习过HTML页面解析的一些内容,其中介绍了选择器的相关知识,接下来深入的学习选择器。 Scrapy的选择器是基于lxml,也就是说二者在原理和速度上是一致的。 构造选择器 Scrapy selector是以 文字(text) 或 TextResponse 构造的Selector 实例...

2015-10-11 23:17:26 2374 0

原创 scrapy学习--内置Spiders简介

有段时间没有学习Scrapy了,工作很紧所以时间大部分都投入到了android的学习上了。 今天有点时间继续学习Scrapy,接上一篇scrapy学习--Spiders继续学习内置Spiders。 1.XMLFeedSpider XMLFeedSpider被设计用于通过迭代各个节点来分析XML源(...

2015-10-02 10:01:21 919 0

原创 textview圆角只有左上角有效的问题

今天遇到一个坑爹的问题 在使用android studio的时候,设置了一个textview的圆角,然后在preview中进行预览。 我擦,明明只设置了上面两个圆角的值,结果下面两个也变成了直角了,并且只有修改左上角的值才有效果。 到网上查了一下发现有人遇到了同样的问题,但是没有给出解决方案,而且...

2015-09-18 23:47:38 825 0

原创 Android studio中配置androidannotations框架

马上要开始一个新项目,老板让我搭建android版的基础架构,感觉压力还不小的,项目时间比较紧迫,所以想要加快开发速度,第一个想到的就是注解的开发方式。一查找果然Android上也有一些注解,衡量了一下决定使用androidannotations框架。 第一件事就是在自己电脑上搭建一个demo,用...

2015-09-15 00:39:01 1403 0

原创 android studio 的SHA1查看

最近项目开发用到了高德地图,需要申请key才能在应用中使用。而申请key需要用到sha1。 在eclipse中sha1很容易查看但是Android studio中就有一些麻烦。 1.获取sha1信息 android studio获取sha1的方法有两种。 一个是直接使用android st...

2015-09-14 22:45:04 553 0

原创 Hybrid App开发

现在移动应用开发主流都采用Hybrid App模式,例如淘宝、微信、手机QQ、携程、去哪儿、手机百度等都使用了Hybrid APP开发模式。 一、   hybrid App的三种解决方案 方案一:使用PhoneGap、AppCan之类的中间件,以WebView作为用户界面层,以Javascri...

2015-09-06 22:12:06 1723 1

原创 scrapy学习--list回顾

记得以前看过一些文章将的是学习知识的记忆是螺旋式上升的,所以需要不停的巩固已有的知识。 在学习Scrapy的过程中,我会时不时地写一些python基础知识的回顾篇,用于回顾一些常用的知识点。 当然作为回顾,我不会写的特别详细,可以作为一个学习的提纲,然后去翻阅资料,这也是一个学习的过程。 还...

2015-08-25 22:43:26 587 0

原创 scrapy学习--Spiders

一、爬虫的工作流程 1.通过调用start_request()中的URL获取初始的request,并以parse为回调函数生成Request。 2.在parse方法中分析返回的内容,返回Item对象或者Request或者一个可迭代容器。 3.在parse内可以使用选择器分析网页内容,并生成ite...

2015-08-25 22:30:53 2624 0

原创 scrapy学习--python字典回顾

由于scrapy的items与字典存在较紧密的联系,并且items的Field对象就是内置字典的一个别名。 所以想要熟练使用items内容,良好的字典的基础就是必要的。 字典类似于java中的Map,由键值对组成。键和值之间用“:”分隔,项与项之间用逗号(,)分隔,整个字典是由大括号括起来。...

2015-08-22 22:28:45 614 0

原创 scrapy学习笔记--Items

Item对象是一种简单容器,用于结构化的保存抓取的数据。 Item使用简单的class定义语句一级Field对象来声明。 import scrapy class FirstspiderItem(scrapy.Item): # define the fields for your item...

2015-08-20 23:16:25 2783 0

原创 Pycharm删除项目

按照网上查找到的方法基本上都是: 删除本地项目,重新打开Pycharm。 这样做在打算彻底删除时是有效的,但是如果只是打算从pycharm中删除,而不是删除本地项目就出现问题。 而且重新建立一个同名文件夹,pycharm中又会出现这个项目。 正确的方式应该是: 1.在用户\XXX\.Py...

2015-08-20 22:23:28 15472 0

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