- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 Android中的Touch事件
Activity或View类的onTouchEvent()回调函数会接收到touch事件。 一个完整的手势是从ACTION_DOWN开始,到ACTION_UP结束。 简单的情况下,我们只需要在onTouchEvent()中写个switch case语句,处理各种事件(Touch Down、Touch Move、Touch Up等),但是比较复杂的动作就需要更多的处理了。 V
2016-08-18 13:29:16 965
原创 Android Webview中解决H5的音视频不能自动播放的问题
今天在开发webview的时候,当加载有声音的H5的时候,声音不会自动播放,必须手动触摸一下屏幕,声音才会播放出来,虽然在H5文件中设置了autoplay属性,也调用了play方法,依然不能自动播放,最后通过在webview中调用js方法来解决。 代码如下:view.loadUrl("javascript:(function() { " + "var videos
2016-08-17 17:06:15 9789 4
原创 android中px、dp、dip以及屏幕密度
1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这 这个,不依赖像素。 这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候可能
2016-08-17 15:28:57 392
转载 View绘图原理总结
Android系统的视图结构的设计也采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器类,由此就得到了视图部分的基本结构--树形结构View定义了绘图的基本操作基本操作由三个函数完成:measure()、layout()、draw(),其内部又分别包含了onMeasure()、onLayout()、onDraw()三个子方法。具体操作如下:
2016-08-16 16:45:59 320
原创 RestFul架构
由于面试中对RestFul架构的理解描述不是特别理想,所以今天就花了数多时间查找资料,然后结合项目经验做了一些总结,如下。什么是REST REST全称是Representational State Transfer,中文意思是表述性状态转移。它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。他在论文中提到:“我这篇文章的
2016-08-12 14:07:40 452
原创 阿里面试的随想
昨天接到了阿里巴巴的电话面试,聊了大概20分钟,不甚理想,对一些问题并不能流利回答,其实很多技术自己在日常开发工作中都在用,却不能组织成文,比如“android的资源预加载”、“RestFul架构”、“View的加载过程”等等,究其原因,还是太浮,对技术没有深刻理解把握,并记录成文,以便于后续复习。 经过面试,也发现自己在深度和广度两个维度都没有大的成就,决定在以后能够在广度有所涉猎,
2016-08-12 09:55:39 491
转载 Android移动开发者必须知道的Deep Linking技术
1.概述Deep Linking(译:深度链接)作为移动开发者可能对这个概念有点陌生,但是对于它的实现原理,说出来大家肯定都知道。不过我们先说一下Deep Linking能做什么?它可以唤起指定应用并向其传递数据,根据传递的数据显示特定内容页的详细信息;它不再受制于应用,只通过一个链接便可唤起应用并跳转到指定页面;它使应用之间产生了联
2016-08-11 11:26:16 2632
转载 Android Patch方案与持续交付
Android 不仅系统版本众多,机型众多,而且各个市场都各有各的政策和审核速度,每次发布一个版本对于开发同学来讲都是一种漫长的煎熬。相比于 iOS 两三天就能达到 80% 的覆盖速度而言,Android 应用版本升级至少需要两周才能达到 80% 的升级率,严重阻碍了版本迭代速度。也导致市场上 App 版本分散,处理 bug 和投诉等也越来越麻烦。修复的 bug 需要等待下个版本发布窗口才
2016-08-11 11:24:04 535
转载 HTTP状态码大全
HTTP状态码大全完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持
2016-08-11 11:20:16 448
原创 Go语言编程(十五)之接口
接口在Go语言有着至关重要的地位。如果说goroutine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道极为亮丽的风景,那么接口是Go语言整个类型系统的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度。 Go语言在编程哲学上是变革派,而不是改良派。这不是因为Go语言有goroutine和channel,而更重要的是因为Go语言的类型系
2016-08-09 16:28:15 853
原创 Go语言编程(十四)之可见性
Go语言对关键字的增加非常吝啬,其中没有private、protected、public这样的关键字。要使某个符号对其他包(package)可见(即可以访问),需要将该符号定义为以大写字母开头,如:type Rect struct { X, Y float64 Width, Height float64}这样,Rect类型的成员变量就全部被导出了,可以被所有其他引用了Rec
2016-08-09 16:18:38 1519
原创 Go语言编程(十三)之匿名组合
确切的说,Go语言也提供了继承,但是采用了组合的文法,所以我们将其称为匿名组合:type Base struct { Name string}func (base *Base) Foo() {...}func (base *Base) Bar() {...}type Foo struct { Base ...}func (foo *Fo
2016-08-09 14:45:22 820
原创 Go语言编程(十二)之类型系统初始化
在定义了Rect类型后,该如何创建并初始化Rect类型的对象实例呢?这可以通过如下几种方法实现:rect1 := new(Rect)rect2 := &Rect{}rect3 := &Rect{0, 0, 100, 200}rect4 := &Rect{width: 100, height: 200}在Go语言中,未进行显式初始化的变量都会被初始化为该类型的零值,例如boo
2016-08-09 14:30:41 767
原创 Go语言编程(十一)之类型系统
类型系统type system 类型系统是指一个语言的类型体系结构。一个典型的类型系统通常包含如下基本内容: 基础类型,如byte、int、bool、float等 复合类型,如数组、结构体、指针等 可以指向任意对象的类型(Any类型) 值语义和引用语义 面向对象,即所有具备面向对象特征(比如成员方法)的类型 接口 类型系统描述的是
2016-08-09 14:23:24 683
原创 Go语言编程(十)之面向对象编程
之前文章介绍了Go语言顺序编程的相关特性,很多人说Go语言是更好的C语言,接下来的篇章,我们将介绍Go语言对于面向对象思想的支持。 Go语言并没有沿袭传统面向对象编程中的诸多概念,比如继承、虚函数、构造函数和析构函数、隐藏的this指针等。Go语言对面向对象编程的支持是语言类型系统中的天然组成部分。整个类型系统通过接口串联。
2016-08-08 15:47:57 726
原创 Go语言编程(九)之错误处理
错误处理是任何编程语言都需要考虑的一个重要话题。error接口 Go语言引入了一个关于错误处理的标准模式,即error接口,该接口的定义如下:type error interface { Error() string}对于大多数函数,如果要返回错误,大致上都可以定义为如下模式,将error作为多种返回值中的最后一个,但这并非强制要求:func
2016-08-08 14:07:50 831
原创 Go语言编程(八)之函数
函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。
2016-08-08 11:14:48 851
原创 Go语言编程(七)之流程控制
程序设计语言的流程控制语句,用于设定计算执行的次序,建立程序的逻辑结构。可以说,流程控制语句是整个程序的骨架。 从根本上说,流程控制只是为了控制程序语句的执行顺序,一般需要与各种条件配合,因此,在各种流程中,会加入条件判断语句。流程控制语句一般起以下3个作用: 选择,即根据条件跳转到不同的执行序列; 循环,即根据条件反复执行某个序列,当然每一次循环执行的输入输出可能会发生变
2016-08-08 10:49:13 632
原创 Go语言编程(六)之类型
布尔类型:bool整型:int8 byte int16 int uint uintptr浮点类型:float32 float64复数类型:complex64 complex128字符串:string字符类型:rune错误类型:error此外,Go语言也支持以下这些复合类型指针(pointer)数组(array)切片(slice)字典
2016-08-05 15:13:31 301
原创 Go语言编程(五)之常量
在Go语言中,常量是指编译期间就已知且不可改变的值。常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等。字面常量是指程序中硬编码的常量。Go语言的字面常量是无类型的。只要这个常量在相应类型的值域范围内,就可以作为该类型的常量。常量定义通过const关键字,可以给字面常量指定一个友好的名字:const Pi float64 = 3.1415926cons
2016-08-05 14:58:31 564
原创 Go语言编程(四)之变量
变量相当于对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。变量声明 Go语言中使用var关键字声明变量,而类型信息放在变量名之后。变量声明不需要使用分号作为结束符。示例如下var v1 intvar v2 stringvar v3 [10]int // 数组var v4 []
2016-08-05 11:49:14 360
原创 Go语言编程(三)之过过瘾
开发一个基于命令行的计算器程序。工程下载地址如下:https://github.com/JoeySheng/calcproj.git编译过程:1. 为了能够构建这个工程,需要先把这个工程的根目录加入到环境变量GOPATH中。假设calcproj目录位于~/go下,则应编辑~/.bash_profile文件,并添加下面这行代码: export GOPATH=~/go/calcp
2016-08-05 09:55:32 417
原创 Go语言编程(二)之编译环境
第一个Go程序代码清单 hello.gopackage mainimport "fmt" // 我们需要使用fmt包中的Println()函数func main() { fmt.Println("Hello, world.");}
2016-08-03 23:41:52 589
原创 Android WebView 播放视频的问题(只有声音没有图像)
使用Android自带的Webview加载带有视频的网页,出现视频只有声音没有图像的问题,究其原因,需要对webview添加硬件加速,只要对webview添加即可,代码如下mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);不对webview所在的activity添加也是可以的。
2016-08-03 19:45:32 12565 4
原创 Android动态加载插件APK
问题起因我曾经在开发Android Application的过程中遇到过那个有名的65k方法数的问题。如果你开发的应用程序变得非常庞大,你八成会遇到这个问题。这个问题实际上体现为两个方面:一、65k方法数Android的APK安装包将编译后的字节码放在dex格式的文件中,供Android的JVM加载执行。不幸的是,单个dex文件的方法数被限制在了65536之内,这其中除了我们自己实
2016-08-03 15:01:26 2461
原创 Android动态加载基础 ClassLoader工作机制
类加载器ClassLoader早期使用过Eclipse等Java编写的软件的同学可能比较熟悉,Eclipse可以加载许多第三方的插件(或者叫扩展),这就是动态加载。这些插件大多是一些Jar包,而使用插件其实就是动态加载Jar包里的Class进行工作。这其实非常好理解,Java代码都是写在Class里面的,程序运行在虚拟机上时,虚拟机需要把需要的Class加载进来才能创建实例对象并工作,而完成这
2016-08-03 11:17:00 2485 3
原创 Node.js编程规范
前言 并没有一个官方的文档规定Node.js应用程序代码的风格,但Node.js代码分割有着一些“事实上的约定”,大多数项目的代码都已定程度上遵循了这一标准。作为Node.js开发新手,我认为有必要遵守这个约定,以便于今后的交流。追根溯源,这个规范发轫于Node.js核心模块的实现,而Node.js核心模块的代码很大程度上符合JavaScript代码的一贯风格。 事实上代码风格永远
2016-08-02 16:52:06 924 1
原创 使用Facebook的create-react-app快速构建React开发环境
create-react-app:来自 Facebook官方的零配置命令行工具create-react-app 是来自于 Facebook 出品的零配置命令行工具,能够帮你自动创建基于 Webpack+ES6 的最简易的 React 项目模板,有助于初学者快速上手实践。安装 create-react-app 的方式也非常简单,可以直接使用npm命令进行全局安装。npm install -g
2016-08-01 17:04:05 1692
原创 Android表情面板简单实现
源码下载地址:http://download.csdn.net/detail/joeysheng/9591767github下载地址:https://github.com/JoeySheng/EmojiDemo
2016-08-01 15:20:42 831
原创 SparseArray替代HashMap提高性能
SparseArray是 Android框架独有的类,在标准的JDK中不存在这个类。它要比 HashMap 节省内存,某些情况下比HashMap性能更好,按照官方问答的解释,主要是因为SparseArray不需要对key和value进行auto- boxing(将原始类型封装为对象类型,比如把int类型封装成Integer类型),结构比HashMap简单(SparseArray内部主要使用 两
2016-08-01 13:11:48 695
Stomp over websocket for android
2016-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人