To build a better world !

2013年8月14日

     摘要:
基于官方文档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  阅读全文
posted @ 2014-02-08 12:58 zh.weir 阅读(22354) | 评论 (1)编辑 收藏
     摘要: 背景
事实上,在前些年,随着wifi的兴起,特别是wifi direct的推出,蓝牙一度没落了。然而近一两年随着移动智能终端指数级增长,穿戴式设备兴起,蓝牙4.0推出,特别是低功耗蓝牙(BLE)的推出,蓝牙又焕发了新的青春气息。
此次蓝牙的复兴,可以明显感觉出人们对蓝牙与wifi诉求的差异化。wifi的优势在于传输速度,大文件、块数据的传输,正很快地向wifi direct切换。而蓝牙的优势在于多样化设备间的无线连接和数据共享。
蓝牙之所以有这个优势,我想主要原因是蓝牙历史悠久,有相当多现成的设备间通信标准和协议。另外蓝牙模块成本低、体积小,非常适合应用于穿戴式设备等小型设备。加之新推出的低功耗蓝牙将耗电量降得非常低,穿戴设备用一个纽扣电池就能用好几个月甚至几年。
经典蓝牙应用场景包括蓝牙耳机、蓝牙音箱、蓝牙鼠标、蓝牙键盘等。而随着低功耗蓝牙的推出,穿戴式设备开始流行起来,例如手环、手表、防丢挂件等。
穿戴式设备对蓝牙来说预示着一种趋势。那就是在Android与Arduino让一切物体智能起来的时代,蓝牙可以作为一种强大稳定的无线通信技术,让一切  阅读全文
posted @ 2013-12-17 21:32 zh.weir 阅读(1152) | 评论 (0)编辑 收藏
     摘要: 一、关键概念:
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  阅读全文
posted @ 2013-12-09 20:27 zh.weir 阅读(60777) | 评论 (27)编辑 收藏
     摘要: 从最近几年开始,做平台的公司都流行起Open API。这是一个非常好的理念,也受到广大开发者的欢迎。如今,开发一款软件,你可以很容易地集成微博、微信、人人网等流行社交媒介的分享功能,做一个社交应用变得越来越简单。

主流社交媒介要集成到第三方应用中,最重要的入口就是安全便捷的授权认证系统。让用户在享受一键分享和各种社交乐趣的同时,又不用担心帐号安全和隐私泄露等问题。而对于一些有特殊目的的组织或个人来说,攻占这个授权认证系统意味着自己获取了信息传播的入口和渠道,数量庞大地社交入口往往能带来巨大的社会效应。所以,这个入口就成了软件安全攻防双方的必争之地。

而本文所要讲的就是当前最为流行的新浪微博Android客户端SSO授权认证入口的一个安全缺陷。此缺陷使得第三方APK在一定条件下可以不通过授权,在不需要人为操作的情况下就可以操作Android手机用户的微博。包括关注、评论、发微博等OpenAPI中提供的功能。  阅读全文
posted @ 2013-09-08 20:32 zh.weir 阅读(7954) | 评论 (2)编辑 收藏
     摘要: 最近微信出了5.0,新增了游戏中心,并内置了一个经典游戏《飞机大战》。游戏其实很简单,但由于可以和好友一起竞争排名,一时间受到大家的追捧,小伙伴们进入“全民打飞机”时代。

ios 版出来不久就被破解出了无敌模式。Android版出后好像一直风平浪静。周末无事,加之看雪zmworm版主邀请,于是花了一天的工夫研究了下。也出了个Android版的无敌模式增强版。具体来说就是无敌、双排子弹加无限炸弹。当然,这个不是重点,我们的重点当然是技术细节啦!

微信的游戏继承了Android版手机QQ游戏中心的思想,也采用插件动态加载方式。具体来说,就是插件及游戏以jar包形式存在,jar包中有classes.dex及其他资源文件,在运行时动态加载资源及classes.dex代码。这样的好处是灵活管理,易于扩展。以后更多的游戏只要上架到微信的服务器,用户就能在微信应用内部下载、安装、运行。具体原理可以参考我2011年的一篇文章《Android类动态加载技术》 。

当然,那篇文章讲的只是基本原理,而微信在代码动态加载方面则走得更远。针对插件的管理  阅读全文
posted @ 2013-08-14 23:10 zh.weir 阅读(42907) | 评论 (65)编辑 收藏

公告

大家好!欢迎光临我的 Android 技术博客!



本博客旨在交流与 Android 操作系统相关的各种技术及信息。

博客内的文章会尽量以开源的形式提供给大家,希望我们能相互交流,共同提高!

有不足之处,请不吝赐教!

我的邮箱:zh.weir@gmail.com
我的新浪微博:@囧虎张建伟

 

导航

<2013年8月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

留言簿(19)

随笔分类(24)

随笔档案(18)

文章档案(1)

搜索

最新评论

阅读排行榜

评论排行榜