2013年9月8日
摘要:
基于官方文档2013.12.19最后一次改动。
翻译人:Weir Zhang (zh.weir)
旁白:水平有限,很多地方只是意译。不准确的地方,大家以原版文档为准。
原版地址:http://google-styleguide.googlecode.com/svn/trunk/javaguide.html
一、介绍
本文档为Google Java编程规范的完整定义。依照此规范编写的Java源码文件可以被称为Google Style。
和其他编程规范指南一样,规范不仅包括了代码的结构美学,也包括了其他一些业界约定俗成的公约和普遍采用的标准。本文档中的规范基本都是业界已经达成共识的标准,我们尽量避免去定义那些还存在争议的地方。
1.1 术语说明
本文档除非特殊说明,否则:
a、class(类)统指普通的class类型、enum枚举类型、interfa
阅读全文
摘要: 背景
事实上,在前些年,随着wifi的兴起,特别是wifi direct的推出,蓝牙一度没落了。然而近一两年随着移动智能终端指数级增长,穿戴式设备兴起,蓝牙4.0推出,特别是低功耗蓝牙(BLE)的推出,蓝牙又焕发了新的青春气息。
此次蓝牙的复兴,可以明显感觉出人们对蓝牙与wifi诉求的差异化。wifi的优势在于传输速度,大文件、块数据的传输,正很快地向wifi direct切换。而蓝牙的优势在于多样化设备间的无线连接和数据共享。
蓝牙之所以有这个优势,我想主要原因是蓝牙历史悠久,有相当多现成的设备间通信标准和协议。另外蓝牙模块成本低、体积小,非常适合应用于穿戴式设备等小型设备。加之新推出的低功耗蓝牙将耗电量降得非常低,穿戴设备用一个纽扣电池就能用好几个月甚至几年。
经典蓝牙应用场景包括蓝牙耳机、蓝牙音箱、蓝牙鼠标、蓝牙键盘等。而随着低功耗蓝牙的推出,穿戴式设备开始流行起来,例如手环、手表、防丢挂件等。
穿戴式设备对蓝牙来说预示着一种趋势。那就是在Android与Arduino让一切物体智能起来的时代,蓝牙可以作为一种强大稳定的无线通信技术,让一切
阅读全文
摘要: 一、关键概念:
Generic Attribute Profile (GATT)
通过BLE连接,读写属性类小数据的Profile通用规范。现在所有的BLE应用Profile都是基于GATT的。
Attribute Protocol (ATT)
GATT是基于ATT Protocol的。ATT针对BLE设备做了专门的优化,具体就是在传输过程中使用尽量少的数据。每个属性都有一个唯一的UUID,属性将以characteristics and services的形式传输。
Characteristic
Characteristic可以理解为一个数据类型,它包括一个value和0至多个对次value的描述(Descriptor)。
Descriptor
对Characteristic的描述,例如范围、计量单位等。
Service
Characteristic的集合。例如一个service叫做“Heart Rate Monitor”,它可能包含多个Characteris
阅读全文
摘要: 从最近几年开始,做平台的公司都流行起Open API。这是一个非常好的理念,也受到广大开发者的欢迎。如今,开发一款软件,你可以很容易地集成微博、微信、人人网等流行社交媒介的分享功能,做一个社交应用变得越来越简单。
主流社交媒介要集成到第三方应用中,最重要的入口就是安全便捷的授权认证系统。让用户在享受一键分享和各种社交乐趣的同时,又不用担心帐号安全和隐私泄露等问题。而对于一些有特殊目的的组织或个人来说,攻占这个授权认证系统意味着自己获取了信息传播的入口和渠道,数量庞大地社交入口往往能带来巨大的社会效应。所以,这个入口就成了软件安全攻防双方的必争之地。
而本文所要讲的就是当前最为流行的新浪微博Android客户端SSO授权认证入口的一个安全缺陷。此缺陷使得第三方APK在一定条件下可以不通过授权,在不需要人为操作的情况下就可以操作Android手机用户的微博。包括关注、评论、发微博等OpenAPI中提供的功能。
阅读全文