To build a better world !

2011年10月29日

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

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

而本文所要讲的就是当前最为流行的新浪微博Android客户端SSO授权认证入口的一个安全缺陷。此缺陷使得第三方APK在一定条件下可以不通过授权,在不需要人为操作的情况下就可以操作Android手机用户的微博。包括关注、评论、发微博等OpenAPI中提供的功能。  阅读全文
posted @ 2013-09-08 20:32 zh.weir 阅读(7956) | 评论 (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 阅读(42910) | 评论 (65)编辑 收藏
     摘要: Bluebox Security在7月3号的时候,在官网上发布了一个据称99% Android机器都有的一个漏洞。国内最早在4号开始有媒体报道,并持续升温。该漏洞可使攻击者在不更改Android应用程序的开发者签名的情况下,对APK代码进行修改。并且,这个漏洞涉及到从1.6版本至今全部的Android版本,换句话说,这4年中生产的9亿设备,即当今市场上99%的Android产品都面临这一问题。

看到这样的报道,一开始我和我的小伙伴们都不敢相信。因为签名机制用了这么多年,多少大脑袋厚眼镜的天才们想要颠覆都没搞定,Bluebox Security怎么可能搞定的呢?不过,由于好奇心驱使,我开始查看Bluebox Security官方的说法:《UNCOVERING ANDROID MASTER KEY THAT MAKES 99% OF DEVICES VULNERABLE》,我意识到,这个问题应该不是签名机制本身的问题,而是Android安装APK过程中的校验存在漏洞。

如果是APK安装校验签名的漏洞,而这个Bug又从1.6开始就有,那  阅读全文
posted @ 2013-07-06 16:58 zh.weir 阅读(5895) | 评论 (6)编辑 收藏
     摘要: 昨天想到一个点子,需要访问股票行情。于是在网上搜了一下免费的股市行情的接口。发现新浪股票的数据接口比较稳定,于是就用它了。

网上对于新浪股票的数据接口介绍比较详细,并且实现也很简单,所以花了一下午就基本完成了。想到大家开发Android应用可能也会需要访问股市行情,特此将资料整理在此,并附上Javadoc文档和一个小Demo,以便后来人开发更为便捷。

  阅读全文
posted @ 2012-03-01 22:50 zh.weir 阅读(12830) | 评论 (4)编辑 收藏
     摘要: Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求。但是有些特殊问题,常常引发我们进一步的沉思。我们从沉思中产生顿悟,从而产生新的技术形式。

如何开发一个可以自定义控件的Android应用?就像eclipse一样,可以动态加载插件;如何让Android应用执行服务器上的不可预知的代码?如何对Android应用加密,而只在执行时自解密,从而防止被破解?……

熟悉Java技术的朋友,可能意识到,我们需要使用类加载器灵活的加载执行的类。这在Java里已经算是一项比较成熟的技术了,但是在Android中,我们大多数人都还非常陌生。
  阅读全文
posted @ 2011-10-29 21:51 zh.weir 阅读(37865) | 评论 (25)编辑 收藏

公告

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



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

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

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

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

 

导航

<2011年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

留言簿(19)

随笔分类(24)

随笔档案(18)

文章档案(1)

搜索

最新评论

阅读排行榜

评论排行榜