新书《Android安全技术揭秘与防范》终于出版了

愿每一个北漂的孩子都能找到自己为之奋斗的方向,不负那些在远方默默支持我们的父母和亲人。

历时将近1的新书《Android安全技术揭秘与防范》终于出版了,第一次写书万分激动,这里向大家推广一下本书。

先附上本书的照片和链接(貌似在线购买还没有出来,稍后更新):

大家可以在::http://www.epubit.com.cn/book/details/4005这里看到进度

下面是目录:

第1章 Android简介 10

1.1 发展历史 10

1.2 系统进化史 10

1.2.1 Nexus系列 12

1.2.2 国产定制系统 12

1.2.3 开放与安全 13

1.2.4 移动互联网的趋势 14

1.3 对比IOS系统 15

1.3.1 系统架构对比 15

1.3.2 市场占有量 16

1.3.3 安全对比 16

第2章 Android地下产业链分析 18

2.1 钱从哪里来 18

2.1.1 恶意吸费 19

2.1.2 广告、恶意推广 22

2.1.3 诱骗欺诈 23

2.1.4 隐私窃取 24

2.1.5 安装包分析 24

2.2 催生产业链 26

2.2.1 安全类应用 27

2.2.2 应用加固 27

2.2.3 刷机产业 27

2.2.4 ROM制作与预装 28

2.3 安全的发展趋势 28

2.3.1 系统级别的杀毒 29

2.3.2 应用市场的监管 29

2.3.3 法律体系的完善 29

2.3.4 智能硬件安全 30

第3章 理解Android系统 31

3.1 系统的层级架构 31

3.1.1 应用层 32

3.1.2 框架层 32

3.1.3 核心库与运行环境层 32

3.1.4 Linux内核层 33

3.1.5 系统的分区结构 34

3.2 启动过程 35

3.2.1 BootLoader加载阶段 36

3.2.2 加载Kernel与initrd阶段 36

3.2.3 初始化设备服务阶段 37

3.2.4 加载系统服务阶段 37

3.2.5 虚拟机初始化阶段 37

3.2.6 启动完成阶段 37

3.3 系统关键进程与服务 37

3.3.1 系统第一个进程init详解 38

3.3.2 ADB进程 40

3.3.3 存储类守护进程Vold 40

3.3.4 进程母体Zygote 41

3.3.5 服务管理器ServiceMananger 42

3.3.6 进程复制Android Fork 43

3.3.7 进程间通信Binder机制 43

3.3.8 匿名共享内存机制Ashmem 44

3.3.9 日志服务Logger 45

3.4 APK生成 45

3.4.1 编译过程 47

3.4.2 打包过程 47

3.4.3 签名优化过程 47

3.5 系统安全执行边界 48

3.5.1 沙箱隔离机制 48

3.5.2 权限授予机制 49

3.5.3 数字签名机制 53

3.6 系统的安全结构 56

3.6.1 Android应用程序安全 57

3.6.2 主要的应用组件 57

3.6.3 四大组件模型 59

3.6.4 Android框架层 61

3.6.5 Dalvik 虚拟机 61

3.7 Android 5.0(Lollipop)的安全架构 62

3.7.1 加强型内核SEAndroid 63

3.7.2 安全的锁屏 63

3.7.3 充分的加密 63

3.7.4 Android5.0安全总结 63

第4章 Root你的设备 65

4.1 获取Root权限原理 65

4.1.1 su源码分析 66

4.1.2 Root后手机对比 67

4.1.3 Root思路 68

4.1.4 Root漏洞 68

4.1.5 已经发现的Root漏洞 71

4.1.6 SuperUser分析 71

4.1.7 Root安全 73

4.2 Root的分类 74

4.2.1 临时Root 74

4.2.2 永久Root 77

4.2.3 删除Root 78

4.2.4 免Root 79

4.3 Root之后 80

4.3.1 静默安装 80

4.3.2 删除预装 87

4.3.3 键盘监控 89

4.3.4 短信拦截与静默发送 94

4.3.5 电话监控 97

第5章 APK静态分析 101

5.1 什么是静态分析 101

5.2 常用分析利器 101

5.2.1 资源逆向工具AXMLPrinter 2 101

5.2.2 查看源码工具dex2jar、jd-GUI 102

5.2.3 APK逆向工具APKTool 103

5.2.4 Android逆向助手 104

5.2.5 反汇编工具IDA PRO 104

5.2.6 超级编辑器UltraEdit 105

5.3 认识APK文件 105

5.3.1 App的种类 106

5.3.2 反编译前结构 108

5.3.3 反编译后结构 109

5.4 分析DEX文件 111

5.4.1 认识DEX 112

5.4.2 虚拟机指令Smali简介 113

5.4.3 Smali与Java对比 113

5.4.4 Smali语法基础 115

5.4.5 常用的Smali 注入代码 116

5.5 分析SO文件 118

5.5.1 NDK开发流程 119

5.5.2 开始反汇编 123

5.5.3 尝试修改SO文件逻辑 126

5.6 收集信息定位关键代码 128

5.6.1 AndroidManifest.xml突破 128

5.6.2 特殊关键字突破 130

5.6.3 资源索引突破 131

5.7 开始篡改代码 131

5.7.1 尝试篡改逻辑 132

5.7.2 广告植入与去除 134

5.7.3 收费限制破解 139

5.7.4 应用程序汉化 141

5.7.5 篡改逻辑小结 141

第6章 ARM汇编速成 142

6.1 抽象层次 142

6.1.1 计算机体系结构 142

6.1.2 常见嵌入式处理器 143

6.1.3 Android支持处理器情况 145

6.2 逆向工程 145

6.2.1 计算机层级 146

6.2.2 汇编语言 147

6.2.3 反汇编的理解 150

6.2.4 ARM汇编语言模块的结构 150

6.2.5 简单的ARM程序 150

6.3 ARM体系结构 152

6.3.1 ARM 微处理器的工作状态 152

6.3.2 ARM 体系结构的存储器格式 153

6.3.3 指令长度及数据类型 153

6.3.4 处理器模式 153

6.3.5 ARM状态下寄存器组织 154

6.3.6 Thumb 状态下的寄存器组织 156

6.4 ARM 微处理器的指令集概述 156

6.4.1 ARM指令的助记符 157

6.4.2 程序状态寄存器 158

6.4.3 指令的条件域 160

6.4.4 ARM指令的寻址方式 161

6.5 Thumb 指令及应用 163

6.5.1 Thumb指令集特点 164

6.5.2 ARM与Thumb状态切换 164

6.5.3 Thumb指令集格式 165

6.5.4 Thmub指令的十六进制值计算 166

6.6 快速识别ARM汇编中的C/C++逻辑 167

6.6.1 识别if-else判断逻辑 167

6.6.2 识别while-do循环逻辑 169

6.6.3 识别for循环逻辑 171

6.6.4 识别switch-case分支逻辑 172

第7章 APK动态分析 176

7.1 应用体系架构 176

7.1.1 代码安全分析 177

7.1.2 组件安全分析 177

7.1.3 存储安全分析 177

7.1.4 通讯安全分析 177

7.2 DDMS调试 178

7.2.1 使用Log进行逻辑跟踪 178

7.2.2 不安全的本地存储 181

7.2.3 使用TraceView进行方法跟踪 182

7.3 网络抓包 186

7.3.1 抓包工具Fiddler简介 187

7.3.2 抓包的原理 187

7.3.3 如何在Android上进行抓包 188

7.3.4 设置断点修改请求 191

7.4 使用AndBug断点调试 194

7.4.1 配置AndBug环境 194

7.4.2 AndBug常用命令 195

7.4.3 AndBug调试步骤 196

7.4.4 开始断点调试 197

7.5 使用IDA Pro进行动态调试 202

7.5.1 使用IDA动态调试原生库so 202

7.5.2 使用IDA动态调试dex 207

7.6 调试WebView APP 209

7.6.1 Chrome插件调试 210

7.6.2 WebView已知漏洞 210

7.6.3 HTML安全 211

7.6.4 网络钓鱼 212

7.6.5 SQL注入攻击 212

第8章 动态注入技术 214

8.1 什么Hook是技术 214

8.1.1 Hook原理 215

8.1.2 Hook的种类 218

8.1.3 Hook的危害 220

8.2 常用的Hook工具 220

8.2.1 Xposed框架 220

8.2.2 CydiaSubstrate框架 222

8.2.3 ADBI/DDI框架 224

8.3 Hook Android应用 224

8.3.1 尝试Hook系统API 226

8.3.2 Hook指定应用注入广告 228

8.3.3 App登陆劫持 232

8.4 Hook 原生应用程序 238

8.4.1 CydiaSubstrate框架针对Native层Hook的支持 238

8.4.2 通过JNI改变系统颜色 240

8.4.3 Hook后替换指定应用中的原生方法 244

8.4.4 使用Hook进行广告拦截 248

8.5 Hook检测/修复 250

8.5.1 Hook检测 250

8.5.2 Hook修复 253

8.5.3 Hook检测小结 255

第9章 应用加固与渗透测试 256

9.1 防止利用系统组件漏洞 256

9.1.1 Activity编码安全 257

9.1.2 Brocast Recevier编码安全 266

9.1.3 Service编码安全 274

9.1.4 Provider编码安全 283

9.2 防止逆向 296

9.2.1 代码混淆 297

9.2.2 DEX保护 302

9.2.3 SO文件保护 305

9.2.4 防止jd-GUI查看代码 305

9.2.5 防止二次打包 307

9.3 防止动态分析 313

9.3.1 检测运行环境 314

9.3.2 防止进行动态注入 315

9.4 Android渗透测试 316

9.4.1 渗透测试步骤 316

9.4.2 渗透测试工具 317

9.4.3 应用程序渗透测试 323

第10章 系统安全措施 325

10.1 启动验证 325

10.2 磁盘加密 326

10.2.1 加密模式 327

10.2.2 密钥的生成 327

10.3 屏幕安全 327

10.3.1 图案锁 329

10.3.2 密码锁 330

10.3.3 PIN锁 330

10.4 USB调试安全 330

10.4.1 ADB概况 331

10.4.2 为什么ADB需要安全 332

10.4.3 ADB安全 332

10.4.4 ADB的安全措施 333

10.4.5 ADB认证秘钥 334

10.5 增强型内核SELinux/SEAndroid 334

10.5.1 SELinux架构 335

10.5.2 传统的Linux的不足之处 336

10.5.3 SELinux的特点 336

10.5.4 SELinux的运行模式 337

10.5.5 SELinux 的启动、关闭与观察 339

第11章 内核攻击与防护 343

11.1 Rootkit是什么 343

11.1.1 Rootkit概述 344

11.1.2 Linux可加载的内核模块 347

11.1.3 剖析内核模块 348

11.1.4 了解内核模块对象 348

11.1.5 LKM 的生命周期 349

11.1.6 系统调用机制 350

11.1.7 SWI中断 350

11.1.8 Linux系统调用规范 351

11.1.9 系统接口重定向 352

11.1.10 虚拟文件系统 353

11.2 Android电话系统 354

11.2.1 Android 电话子系统体系结构 355

11.2.2 Android 电话子系统工作流程 356

11.2.3 内核级 Rootkit 攻击位置 358

11.3 开始攻击内核 359

11.3.1 环境搭建 359

11.3.2 第一个自定义内核程序 362

11.3.3 隐藏潜伏模块 365

11.3.4 操纵内核模块 372

11.3.5 信息收集模块 373

11.4 内核级Rootkit检测 374

11.4.1 常用的 Rootkit 检测方法 374

11.4.2 Android Rootkit检测系统模型 374

11.4.3 LKM 模块检测 377

11.4.4 电话子系统攻击检测 378

11.5 Rootkit的植入与启动 380

11.5.1 Rootkit的植入 380

11.5.2 Rootkit的启动 380

11.5.3 Rootkit小结 381

附录1 ARM 指令集 382

12.1 跳转指令 382

12.1.1 B 指令 382

12.1.2 BL 指令 382

12.1.3 BLX 指令 383

12.1.4 BX 指令 383

12.2 数据处理指令 383

12.2.1 MOV 指令 384

12.2.2 MVN 指令 384

12.2.3 CMP 指令 385

12.2.4 CMN 指令 385

12.2.5 TST 指令 385

12.2.6 TEQ 指令 386

12.2.7 ADD 指令 386

12.2.8 ADC 指令 386

12.2.9 SUB 指令 387

12.2.10 SBC 指令 387

12.2.11 RSB 指令 388

12.2.12 RSC 指令 388

12.2.13 AND 指令 388

12.2.14 ORR 指令 389

12.2.15 EOR 指令 389

12.2.16 BIC 指令 389

12.3 乘法指令与乘加指令 390

12.3.1 MUL 指令 390

12.3.2 MLA 指令 390

12.3.3 SMULL 指令 391

12.3.4 SMLAL 指令 391

12.3.5 UMULL 指令 391

12.3.6 UMLAL 指令 392

12.4 程序状态寄存器访问指令 392

12.4.1 MRS 指令 392

12.4.2 MSR 指令 393

12.5 加载/存储指令 393

12.5.1 LDR 指令 394

12.5.2 LDRB 指令 394

12.5.3 LDRH 指令 395

12.5.4 STR 指令 395

12.5.5 STRB 指令 395

12.5.6 STRH 指令 396

12.6 批量数据加载/存储指令 396

12.6.1 LDM(或 STM)指令 396

12.7 数据交换指令 397

12.7.1 SWP 指令 397

12.7.2 SWPB 指令 397

12.8 移位指令(操作) 398

12.8.1 LSL(或 ASL)操作 398

12.8.2 LSR 操作 399

12.8.3 ASR 操作 399

12.8.4 ROR 操作 399

12.8.5 RRX 操作 399

12.9 协处理器指令 400

12.9.1 CDP 指令 400

12.9.2 LDC 指令 400

12.9.3 STC 指令 401

12.9.4 MCR 指令 401

12.9.5 MRC 指令 402

12.10 异常产生指令 402

12.10.1 SWI 指令 402

12.10.2 BKPT 指令 402

附录2 ARM伪指令集 404

12.11 符号定义伪指令 404

12.11.1 GBLA、GBLL 和 GBLS指令 404

12.11.2 LCLA、LCLL 和 LCLS指令 405

12.11.3 SETA、SETL 和 SETS指令 405

12.11.4 RLIST指令 405

12.12 数据定义伪指令 406

12.12.1 DCB指令 406

12.12.2 DCW、DCWU指令 406

12.12.3 DCD、DCDU指令 407

12.12.4 DCFD、DCFDU指令 407

12.12.5 DCFS、DCFSU指令 407

12.12.6 DCQ、DCQU指令 408

12.12.7 SPACE指令 408

12.12.8 MAP指令 408

12.12.9 FILED指令 408

12.13 汇编控制伪指令 409

12.13.1 IF、ELSE、ENDIF指令 409

12.13.2 WHILE、WEND指令 410

12.13.3 MACRO、MEND指令 410

12.13.4 MEXIT指令 411

12.14 其他常用的伪指令 411

12.14.1 AREA指令 411

12.14.2 ALIGN指令 412

12.14.3 CODE16、CODE32指令 412

12.14.4 END指令 413

12.14.5 EQU指令 413

12.14.6 EXPORT、GLOBAL指令 414

12.14.7 IMPORT指令 414

12.14.8 EXTERN指令 415

12.14.9 GET、INCLUDE指令 415

12.14.10 INCBIN指令 415

12.14.11 RN指令 416

12.14.12 ROUT指令 416


为什么写一本Android安全方向的书?

笔者学习Android开发也已经在差不多5年的经验了,5年时间里可以说是伴随着Android的发展。第一次写Android应用程序的时候Android还是以1.6系统为主导,记不清是三星还是htc的手机,只记得每次调试都是痛苦般的回忆。每次调试都是在一台只有128M内存的设备上(当时算是高配了),当时每当会不写的时候都是叫我旁边写嵌入式的师兄帮忙,虽然他也不怎么会。当时,想想自己能写一个应用程序在手机上运行,还是比较兴奋的。

附上一张在实验室写码的照片:

当然对于每一个程序员来说,终极目标都是当一名黑客。读书期间特别穷,总是想着一些歪门邪道弄一些钱。买过QQ木马,盗了QQ号之后贩卖Q币和QQ秀;假装QQ主人,向他的好友骗去钱财;最有趣的一次,假装QQ主人,调戏他的女朋友,弄到最后都分手了。(我当时怎么这么坏)。

Android的出现顿时让我眼前一亮,因为当时的应用市场还不完善,只有豌豆荚和eoe market,而且上传的审核机制基本没有。OK,如你们所想,我把我的硬盘中珍藏多年的图片资源,打包成了几个app。“张婉悠私密写真.apk”,“周韦彤日本行.apk”,“泷泽萝拉的夏日故事.apk”等等,虽然里面都是一些比较暴露的照片,但是靠着张老师,周老师和泷泽老师的大名与apk里面的恶意广告,这几个apk每日能给我带来100~200的收入。(虽然不多,但是对于学生时代的我来说,早以兴奋不已。再次感谢各位老师的教导,我决定以后每天都观摩你们的教学大片)

人是一种很难满足的动物,渐渐,我发现每天100~200块钱根本不够我花(泡妞比较花钱,你懂的)。于是乎,我想着自己做出来的app几乎没名气,下来量不高,很多人被坑了以后再也不会打开了。于是乎,我开始从国外的google play站上逆向当时老外喜欢玩的游戏,翻译,植入广告并在豌豆荚上架。一些比较好玩的游戏都内置又收费机制,而且逻辑多谢在so里,破解起来相当困难。但是,有几句话说得好,女人的花钱刺激着男人的赚钱。当时来说,这个上架速度相当快,每天基本每个上架5款app。这个也是我最疯狂的时候,有一天最多赚了2000块钱。有一款应用,竟然冲刺到了豌豆荚的首页。

但是好景不长,毕业了还是得去找工作。那时候,应用市场基本已经成型了。记得刚毕业面试的第一家公司就是豌豆荚,我很自豪的说你们首页的那款游戏的发布者就是我。结果?结果你们知道的,豌豆荚没有录用我,反而把我id下的所有应用都下架了。WTF!!!(估计是360应用市场打着安全app的旗号对豌豆荚影响太大)。但是就此,我的打包党生涯也赚了数十W多。(当然,自己还得做毕设耽搁了时间,听说有一些公司专门做这事都上市了)


为什么来360又为什么离开

男人天生就是为了来战斗,要死就死在战场上,所以来了360。(实话说只有他的offer没得选择)。进来没有写代码,而是给360手机卫士做了3个月的测试,做测试这段日子也让我的思考维度得到充分的转变。后面做去了搜索,做了雷电项目,看了成千上万的app,从测试的角度分析他们的安全漏洞。细节就不多说了。360给年轻人的机会还是挺多的,在里面能够接触各类的牛人,学习各样的技术。里面的层级也比较扁平,能够经常跟周鸿祎,齐向东开会。(因为,我和几位老大的助理小妹妹很熟的关系)。虽然,离开了360但是,还是感激老周,陈利人老师对我的帮助。

当然,这个时候我发现,我们通过给app找漏洞提供给乌云也能赚钱。但是,由于乌云给的价钱太少,工作有繁忙就一直没有在做下去。而且,之后的政治斗争确实让我郁闷了大半年。

借用古惑仔的一句话,虽然我不在360,但周鸿祎永远是我大哥。


这本书能够给大家带来什么?

我不是一个专业搞安全的,与核心安全团队来说,我做的事只能算是泛安全。任何人做任何一件事情都是有目的性的,我们不会纯为了炫耀技术来破解一款app,不能赚钱的手段对于我们也没什么用。这本书我从自己的自身经验向大家介绍Android黑色产业链,让大家清楚我们app的钱是怎么被人偷走的,以及我们该如何防范。

虽然,现在的Android安全产业链也已经比较成熟了,国内的爱加密,梆梆安全等也都已经提供了整套的安全解决方案。很多开发者朋友,都不会去关系内在的逻辑实现,更多的投身到了业务的角度上去了。但是,安全技术不断的推成出新,就连号称比Android安全很多的iOS都频繁的爆出iCloud,XCODE事故。

我国的安全起步很晚,国内也只有几个大公司在做Android安全方向的研究。本书旨在帮助大家快速的了解Android安全,快速的入门。希望大家能够对此产生兴趣,并投身到这个事业中去。

当然,本人的能力有限,时间匆忙,书中难免有一些不足和错误的地方,也希望得到大家的指教。我们一起相互学习,相互进步。

/*

* @author zhoushengtao(周圣韬)

* @since 2015年9月28日 上午 11:10:00

* @weixin stchou_zst

* @blog http://blog.csdn.net/yzzst

* @交流学习QQ群:341989536

* @私人QQ:445914891

/

版权声明:转载请标注:http://blog.csdn.net/yzzst 。 本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-14 22:55:52

新书《Android安全技术揭秘与防范》终于出版了的相关文章

Android安全技术揭秘与防范——APK动态分析

代码安全分析 1 四大权限组件权限和安全检测,特别是广播容易被恶意发送,可以采用应用内部广播LocalBroadcastManager来规避2 存储安全检测,内存存储不设置全局可读可写,不将隐私数据明文保存在外部存储.3 通信安全,采用HTTPS+证书+强加密传输来保证安全 调试安全 关闭debuggable 项目发布前需要在application节点或者release配置中设置debuggable属性为true,否则会显示出Log并且可被外界调试. 发布之前最好进行测试,使用aapt工具:aa

【新书推荐】“十三五”国家重点出版规划项目《网络安全技术及应用》第3版出版发行

[新书推荐]"十三五"国家重点出版规划项目<网络安全技术及应用>第3版出版发行     新书特色:"十三五"国家重点出版规划项目暨上海市高校精品课程特色教材(立体化.新型态.双色印刷-扫描二维码可看视频等),上海市高校优秀教材奖,核心产品立体化配套建设工程,高等教育网络空间安全规划教材,<网络安全技术及应用>第3版出版发行. 注重"教.学.练.做.用一体化",吸收了国内外大量的新知识.新技术.新方法和国际通用准则. 增加了

C++黑客编程揭秘与防范(第2版)——互动出版网

这篇是计算机类的优质首发推荐>>>><C++黑客编程揭秘与防范(第2版)> 编辑推荐 按照攻防角度讲解了: 扫描器.嗅探器.后门等 查壳器.动态调试器.静态分析器.补丁等 杀毒软件.防火墙.主动防御系统等 加壳. 加密狗.电子令牌 等 介绍了操作系统的相关操作,比如进程.线程.注册表等知识 介绍Win32开发外,还介绍了PE结构.调试接口.逆向等相关的知识 介绍了关于防范恶意程序.专杀工具.扫描器等工具的开发 通过本书你能学到Windows下基于消息的软件开发,能学到基

《C++黑客编程揭秘与防范》(第二版)

本书是<C++黑客编程揭秘与防范>的升级版,在前书的基础上新添加了一些内容,同时也删除了一些过时的内容.本书以Win32应用层下安全开发为中心,介绍Windows系统下的安全开发. 本书介绍了操作系统的相关操作,比如进程.线程.注册表等知识.当读者掌握了关于进程.线程.注册表等相关的开发知识后,就可以把一些常规的操作进程.注册表.文件等用代码进行实现,这样,一些日常的操作可与学习的编程知识相结合.除了操作的知识外,本书还介绍了关于网络应用程序的开发,了解Winsock的开发后,读者就会明白在应

书评第001篇:《C++黑客编程揭秘与防范》

本书基本信息 作者:冀云(编著) 出版社:人民邮电出版社 出版时间:2012-6-1 ISBN:9787115280640 版次:1 页数:265 字数:406000 印刷时间:2012-6-1 开本:16开 纸张:胶版纸 印次:1 包装:平装 定价:39.00元   书籍封面 内容简介 <C++黑客编程揭秘与防范>旨在通过简单的语法知识及常用的系统函数编程,完成一些有特定功能的安全工具,让读者对系统知识等各方面有一个全面的了解,并且在笔者的带领下一步步完成书中的实例.本书主要内容为:第1章了

张晓晗新书《我不是女王》出版上市

图书批发市场:近日,90后新锐畅销书作家张晓晗新书<我不是女王>由群言出版社出版.张晓晗:女,摩羯座.家住上海,毕业于上海戏剧学院,主修戏剧影视文学专业.长期在<萌芽>发表作品,著有<最好的年代><少年祝安><女王乔安>等作品. 内容提要 桃说自己的青春就是一场接连不断的艳遇,青涩如周觅,沉稳如沈念,不羁如林天,他们都在樱桃的生命里留下或浓或淡的痕迹.爱一个人,是要全身心地投入,还是要理智地为自己保留一些感情,以便有能力去爱别人呢?我只想要一张很

【原创】【Android】揭秘 ART 细节 ---- Garbage collection

背景 Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.android.com/devices/tech/dalvik/art.html 正文 Ian Rogers  在Google IO 2014上讲述了 The ART runtime 的Garbage Collection部分,通过他的讲述,我们可以了解到ART在垃圾回收方面有哪些改进的地方.开门见山,下面我们就

《老码说编程之玩转Swift江湖》一书终于出版了

今天我们的第一本基于XCode6.1最新版Swift语法编写的书籍上市发售了,它有个可爱的名字:<老码说编程之玩转Swift江湖>,还有个漂亮的封面: 本书不是出身名门,它只是五位IT老码农的孩子 五月份的一天,我们几个老码农一起去软件园门口的小面馆吃饭,聊天之余突然对码农的生活产生了很多的抱怨,无聊,没事做,忧虑未来的路在何方,最后大家的意见趋于一致,决定学点什么或者做点什么,通过这次的讨论,一个以学习为主的小团队诞生了并且取了一个无奈的名字:老码团队-OldCoder,听起来多么的苍凉.

Android布局揭秘

前言 今天把对于布局的一些理解写下来,主要内容包括控件的属性的继承关系,控件与容器的属性的关系,以及各种类的属性的使用. 控件的属性种类 通常意义上讲,我们在对一个控件进行属性赋值的时候大体上有种类型的属性,一种为layout_开头的属性,一种为不是以layout_开头的属性,下面以TextView为例进行说明,如下所示 1 <RelativeLayout 2 android:layout_width="match_parent" 3 android:layout_height=