推荐android几本研究深入的书籍(对开发人员很有帮助)

Android Web应用

Android 开发管家技术与精彩案例

Android 开发实战经典

Android 平台开发之旅

Android 开发应用实战详解

Android 经典应用程序开发

Android 开发应用从入门到精通

Android 从入门到精通

Android 开发宝典

Android 编程入门经典

Android 语法范例参考大全

Android 2.x 应用开发实战

Android 系统级深入开发

Android 高薪之路

Android 应用开发

Android SDK 智能手机开发范例手册

Android 游戏开发大全

Android 应用开发全程实录

Android 应用开发完全自学手册

Android 手机/平板电脑 程序 开发教练

深入 Android 应用开发(核心技术解析与最佳实践)

Android 游戏开发技术宝典 OpenGL ES2.0

Android 江湖

Android 技术内幕(系统卷)

Android 开发案例驱动教程

Android 开发完全讲义

Android 实例开发完全手册

Android 项目开发详解

Android 4.0 网络编程详解

Android 手机软件宝典

Android,iPhone,Windows Phone手机网页及网站设计

疯狂 Android 讲义 

Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。1980年代初布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心。Objective-C最主要的描述是他1986年出版的Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.

目录

Objective-C简介
优点及缺点
Objective-C 排行榜
Objective-C和C++的比较
Objective-C简明教程
原生的Hello World代码
未来发展
展开
Objective-C简介
优点及缺点
Objective-C 排行榜
Objective-C和
  Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。1980年代初布莱德·确斯(Brad Cox)在其公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心。Objective-C最主要的描述是他1986年出版的Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8.

编辑本段优点及缺点

  Objective-C是非常“实际”的语言。它使用一个用C写成、很小的 运行库,只会令 应用程序的大小增加很小,和大部分 OO系统使用极大的 VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在 软件发行本)亦和 Smalltalk系统要使用极大的 内存来开启一个 窗口的情况相反。
  Objective-C的最初版本并不支持 垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“ 死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些 第三方版本已加入这个功能(尤是GNUstep),  Apple在其 Mac OS X 10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的xCode4中已经支持自动释放啦,我不敢冒昧地说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是 ARC(Automatic Reference Counting)机制,是不需要用户手动去 Release一个对象,而是在编译期间, 编译器会自动帮你添加那些以前你经常写的[NSObject release]。
  另一个问题是ObjC不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在 Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分别它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。
  虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。
  和 C++不同,Objective-C不支援运算子多载(它不支持 ad-hoc多型)。亦与C++不同,但和 Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和 二进制不兼容。
  由于Obj-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连 系统调用(syscalls)也如此),很多常见的编译时性能优化方法都不能应用于Obj-C(例如: 内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Obj-C性能劣于类似的对象抽象语言(如C++)。不过Obj-C拥护者认为既然Obj-C运行时消耗较大,Obj-C本来就不应应用于C++或Java常见的底层抽象。

编辑本段Objective-C 排行榜

TIOBE 2010年5月编程语言排行榜

  本期主要变化是Objective-C排名进入前十。尽管Objective-C的份额在上个月只达到0.08%,但却在排名上迈出了重要一步——首次进入前十名。这一步的意义重大,要知道,2001年6月TIOBE编程榜发布以来,总体只有13个编程语言曾经进入前十名。
  Objective-C流行的主要原因可能是它是唯一一种可以为iphone和ipad编程的语言。但单从编程语言的角度来看,诞生于1986年的Object-c并没有表现出多少新意。

TIOBE 2011年6月编程语言排行榜

  Objective-C排名继续爬升,从第10名上升到第7名,增长2.07%,是前二十名中增幅最大的。由此可见,Objective-C具有很大的发展空间。

TIOBE 2011年7月编程语言排行榜

  本期的榜单标题: Objective-C将成为年度语言。Objective-C名列第6名。

TIOBE 2011年8月编程语言排行榜

  Objective-C继续强劲上升,有可能在今年超过C#和PHP。

TIOBE 2011年11月编程语言排行榜

  Objective-C保持在第6位,距离第5位的PHP仅有0.113%的差距,且保持上升趋势,而PHP呈现下降趋势,很可能在今年会超越PHP升至第5位。

TIOBE 2011年12月编程语言排行榜

  Objective-C在本期中又上升至第5位.

TIOBE 2012年1月编程语言排行榜

  前三的位置有变动,第三位置已经易主,由上一期的C++变为了C#,不过Objective-C 在连续两年获得第二名之后,终于赢得了 TIOBE 2011 年度编程语言。

TIOBE 2012年7月编程语言排行榜

  Objective-C升至第3位,压倒了之前的C++,市场份额占到9.335%。

编辑本段Objective-C和C++的比较

  单一继承:
  Objective-C不支持多重继承,(同Java和Smalltalk),而C++语言支持多重继承。
  动态:
  Objective-C是动态定型(dynamicaly typed)所以它的类库比C++要容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。
  C++ 跟从 面向对象编程里的Simula 67(一种早期 OO语言)学派,而Objecive-C属于 Smalltalk学派。
  在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objective-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。 而Smalltalk学派更灵活,比如一些Smalltalk 看来无误的程序拿到Simualr 67那里就无法通过。
  从很多方面来看,C++和Objective-C的差别,与其说是技术上的, 不如说是思维方式上的。你是否想更安全而舍弃灵活性?Simular67学派的支持者声称既然程序设计出色何必再要灵活性(谎话!),而 Smalltalk学派则辩称为了灵活可以容忍运行时多出错(也是谎话!)

编辑本段Objective-C简明教程

前言

  ▲开始学习前,假设你已经具备了一些C语言的基础知识,包括变量类型、函数、返回值、以及指针的相关概念。如果对这些还不了解,建议首先学习谭浩强的《C程序设计》。
  ▲Objective-C,是 C 的衍生体,继承了所有 C 语言的特性。是有一些例外,但是它们不是继承于 C 的语言特性本身。
  ▲ nil:在 C/C++ 你或许曾使用过 NULL,而在 Objective-C 中则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮制。
  ▲ BOOL:C 没有正式的布尔类型,而在 Objective-C 中也不是「真的」有。它是包含在 Foundation classes(基本类别库)中(即 import NSObject.h;nil 也是包括在这个标头档内)。BOOL 在 Objective-C 中有两种型态:YES 或 NO,而不是 TRUE 或 FALSE。
  ▲ #import vs #include:就如同你在 hello world 范例中看到的,我们使用了 #import。#import 由 gcc  编译器支援。我并不建议使用 #include,#import 基本上跟 .h 档头尾的 #ifndef #define #endif 相同。许多程式员们都同意,使用这些东西这是十分愚蠢的。无论如何,使用 #import 就对了。这样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会有足够的 Objective-C 程式员可以坚持保留它或是将它放回来。偷偷告诉你,Apple 在它们官方的程式码中也使用了 #import。所以万一有一天这种事真的发生,不难预料  Apple 将会提供一个支援 #import 的 gcc 分支版本。
  ▲ Objective-C 中,  method 及 message 这两个字是可以互换的。不过 messages 拥有特别的特性,具体区别在後面介绍。

编译 hello world

  ◇ hello.m
   #import<stdio.h>
  int main( int argc, const char *argv[] ) {
  printf( "hello world\n" );
  return 0;
  }
  ◇输出
  
  hello world
  ◇ 在 Objective-C 中使用 #import 代替 #include
  ◇ Objective-C 的预设副档名是 .m

创建 classe

   @interface
  *基於 "Programming in Objective-C," Copyright (C) 2004 by Sams Publishing 一书中的范例,并经过允许而刊载。
  ◇Fraction.h
   #import<Foundation/NSObject.h>
  @interfaceFraction: NSObject{
  int numerator;
  int denominator;
  }
  -(void) print;
  -(void) setNumerator: (int) n;
  -(void) setDenominator: (int) d;
  -(int) numerator;
  -(int) denominator;
  @end
  ◇NSObject:NeXTStep Object 的缩写。因为它已经改名为 OpenStep,所以这在今天已经不是那麼有意义了。
  ◇继承(inheritance)以 Class: Parent 表示,就像上面的 Fraction: NSObject。
  ◇夹在 @interface Class: Parent { .... } 中的称为 instance variables。
  ◇没有设定存取权限(protected, public, private)时,预设的存取权限为 protected。设定权限的方式将在稍後说明。
  ◇Instance  methods 跟在成员变数(即 instance variables)後。格式为:scope (returnType) methodName: (parameter1Type) parameter1Name;scope 有class 或 instance 两种。
  ◇instance methods 以 - 开头,class level methods 以 + 开头。
  ◇Interface 以一个 @end 作为结束。
  (未完,待续...)

编辑本段原生的Hello World代码

  01 #import <Foundation/Foundation.h>
  02
  03 int main (int argc, const char * argv[]) {
  04 NSAuto releasePool * pool = [[NSAutoreleasePool alloc] init];
  05
  06 // insert code here...
  07 NSLog(@"Hello, World!");
  08 [pool drain];
  09 return 0;
  10 }
  以上是 Xcode开发环境下默认的.m文件内容,就是原生的Hello World范例代码。 [1]
   关于hello world的更多扩展内容
  在 Objective-C 中 #import 和 #include 的区别
  在 Objective-C 中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import 确定一个文 件只能被导入一次,这使你在递归包含中不会出现问题。使用哪一个还是由你来决定。一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用 #include。

编辑本段未来发展

  2011年已经过去一半,从市场占有率来看,有一种语言脱颖而出,那就是Objective-C,相对2010年增长了2.68%,亚军则是Lua,增长率为1.04% ,如果按这个走势下去,2012年的1月,Lua也将和现在的Objective-C一样,成为年度语言。

转载于:https://www.cnblogs.com/android100/archive/2012/07/30/android-books.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值