999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

《android 應用開發》實驗課教學實例的設計與探討

2012-12-31 00:00:00雷蘊陶燎亮
考試周刊 2012年75期


  摘 要: 文章主要討論手機應用開發實驗教學的案例設計, 旨在更充分深入地了解iOS開發和 android 應用開發的不同之處。重視實驗教學和實踐過程,以學生為主體,培養其主動性、協作精神和創新能力,實實在在地提高實驗教學水平。本文介紹了Protocol Buffer技術,并比較了Protocol Buffer和JSON,討論了兩種數據傳輸格式在網絡數據交換中的不同,通過實例說明如何使用Protocol Buffer代替JSON作為iOS應用開發中數據傳輸格式。
  關鍵詞: Protocol Buffer JSON iOS
  隨著蘋果iOS系統為越來越多人所使用,iOS應用開發也成為程序員所必須掌握的開發技術之一。在iOS應用開發中,JSON作為網絡數據傳輸格式發揮了較大的作用,但JSON也有很大的局限性。本文通過比較Protocol Buffer和JSON,證明使用Protocol Buffer代替JSON作為iOS網絡數據傳輸中的數據格式的有效性,并以工程應用為背景,進行了設計案例分析。
  一、ProtocolBuffer簡介
  Protocol Buffer是google 的一種數據交換的格式,它獨立于語言,獨立于平臺。Google 提供了三種語言的實現:java、c++ 和 python,每一種實現都包含了相應語言的編譯器及庫文件。與XML和JSON不同,它是一種二進制的格式,可以把它用于分布式應用之間的數據通信或者異構環境下的數據交換。作為一種效率和兼容性都很優秀的二進制數據傳輸格式,可以用于諸如網絡傳輸、配置文件、數據存儲等諸多領域。
  二、JSON
  JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它基于JavaScript的一個子集。JSON建構有兩種結構:
  (一)“名稱/值”對的集合,對于不同的語言中,它被理解為對象、記錄、結構、字典、哈希表、有鍵列表或者關聯數組。
  (二)值的有序列表,可以將其理解為數組(array)。
  下面是一個JSON 格式的數據示例:
  {persons:[
  { "id":"1", "name": "sam", "email": "sam@123.com"},
  { "id":"2", "name":"mike", " email ":"mike@123.com"}
  ]};
  三、iOS應用開發
  iOS是由蘋果公司開發的手持設備操作系統,使用與iPhone/iPad等蘋果手持設備。
  iOS應用(iOS APP)開發使用Objective-C作為開發語言,使用xcode作為主要開發環境。iOS應用,開發完成通過審核后在蘋果商店(AppStore)公開發布。
  四、使用Protocol Buffer的優勢
  Protocol Buffers把對象序列化為二進制格式,比JSON方式占用更少的網絡傳輸字節數。
  JSON需要服務端和客戶端分別自行實現序列化Serializer和反序列化Parser,以實現所需要傳輸對象的編碼和解析。例如當前iOS客戶端都會有的大量JSON Parser代碼,也會有很多JSON解析開源的工程。而Protocol Buffer,服務端和客戶端則使用共同的Message定義文件(.proto)和Protocol Buffer編譯器,編譯出不同語言適用的源代碼文件,從而自動實現了Serializer及Parser,我們可以把代碼加入工程直接使用。就客戶端來講,相比自行實現解析字符串的JSON Parser,Protocol Buffer提供的針對二進制數據的Parser在執行效率上要高很多,并且不用我們親自編寫實現代碼。
  五、Protocol Buffer使用方法,以C++為例
  (一)編寫.proto文件,作為Message聲明,服務端和客戶端共用。
  例如定義一個Person.proto
  message Person {
  required int32 id = 1;
  required string name = 2;
  optional string email = 3;
  }
  (二)使用Protocol Buffers編譯器Protoc,編譯.proto文件,生成java/c++/python代碼文件。
  IOS端可以使用的是C++代碼,以C++為例,命令行輸入:
  Protoc –cpp_out=./ Person.proto。
  在當前目錄下生成Person.pb.h以及Person.pb.cc。
  (三)在工程里加入生成的Person.h和Person.cc,即可使用以下代碼實現讀寫。
  定義,使用,以及序列化:
  Person person;
  person.set_id(123);
  person.set_name("Bob");
  person.set_email("Bob@example.com");
  fstream out("person.pb", ios::out | ios::binary | ios::trunc);
  person.SerializeToOstream(&out);
  out.close();
  反序列化:
  Person person;
  fstream in("person.pb", ios::in | ios::binary);
  if (!person.ParseFromIstream(∈)) { cerr << "Failed to parse person.pb." << endl; exit(1);}
  六、Protocol Buffer在iOS開發中的應用
  由于iOS開發主要使用Objective-C作為開發語言,需要與C++代碼做一些橋接工作,處理為HTTP request和response中適用的Objective-C的類NSData。
  序列化:
  - (NSData *)serializeToNSData:(Person *)person {
  std::string ps = person->SerializeAsString();
  return [NSData dataWithBytes:ps.c_str() length:ps.size()];
  }
  反序列化:
  - (Person *)parseFromNSData:(NSData *)data {
  char raw[[data length]];
  Person *p = new Person;
  [data getBytes:raw length:[data length]];
  p->ParseFromArray(raw, [data length]);
  return p;
  }
  七、結語
  隨著計算機技術的發展,近年來智能手機成為嵌入式系統中非常活躍的領域,3G更是刺激了移動互聯網發展。Android 作為Google開發的開源手機操作系統,具有良好的開放性,且發展潛力日益擴大。相比較iOS,有其獨有的發展優勢。本文主要討論區別于Android應用開發的iOS平臺。每個開發者,無論是開發iOS等移動操作系統的應用,標準桌面應用程序或Web應用程序,都都越來越注意到了Protocol Buffer的簡單和便捷,將在各個方面得到更廣泛的應用,為用戶提供更為友好、更為有效的體驗。本文旨在為學生設計一個基于ios的移動應用的開發教學案例,培養學生更了解和掌握移動應用開發的技術和能力。
  參考文獻:
  [1]Danny Goodman.iOS 4 SDK入門:給JavaScript程序員[M].東南大學出版社,2011.05.
  [2]胡雯.利用JSON實現Ajax中數據傳遞[J].科技信息,2009(15).
  [3]姜宇.JSON在電子政務信息系統數據交換中的研究與應用[J].科技創新導報,2012(15).
  [4]王魁生,王曉波.利用JSON進行網站客戶端與服務器數據交互[J].軟件導刊,2010(3).
  項目號:201004Q
  項目名稱:浙江省實驗教學示范中心

主站蜘蛛池模板: 日本精品中文字幕在线不卡| 亚洲一区色| 亚洲一区二区精品无码久久久| 成人午夜免费观看| 国产欧美日韩视频怡春院| 毛片在线看网站| 成人中文在线| 91欧洲国产日韩在线人成| 超清人妻系列无码专区| 亚洲精品片911| 伊人大杳蕉中文无码| 91美女视频在线| 97国产在线播放| 九九九精品视频| 日本手机在线视频| 青青青国产在线播放| 国产综合另类小说色区色噜噜 | 国产成人精品高清不卡在线 | 自拍偷拍欧美| 国产凹凸一区在线观看视频| 国产99在线观看| 综合色在线| 日本a∨在线观看| 亚洲国产成人久久77| 免费视频在线2021入口| 在线播放国产一区| 亚洲国产综合精品中文第一| 伊人久热这里只有精品视频99| 永久免费无码日韩视频| 日韩av无码DVD| 五月天福利视频| 亚洲无码精彩视频在线观看| 亚洲首页在线观看| 国产精品久久久久鬼色| 亚洲国产成人精品一二区| 亚洲IV视频免费在线光看| 久久精品娱乐亚洲领先| 亚洲天堂网在线视频| 国产人人干| 国产精品第三页在线看| 熟妇丰满人妻| 亚洲中文字幕无码爆乳| 不卡无码h在线观看| 九色国产在线| 国产一级片网址| 亚洲综合色婷婷中文字幕| 久久国产高清视频| 久久一级电影| 狠狠做深爱婷婷综合一区| 久久a级片| 福利在线不卡一区| 亚洲美女一级毛片| 日韩黄色在线| 国产成人综合久久| 一本久道久久综合多人| 国产精品久久久久久影院| 国产主播福利在线观看| 特黄日韩免费一区二区三区| 欧美亚洲日韩中文| 在线五月婷婷| 国产污视频在线观看| 国产乱人免费视频| 伊人欧美在线| 色国产视频| 性欧美精品xxxx| 国产又色又爽又黄| 欧美爱爱网| 国产福利在线免费观看| 国产午夜不卡| 欧美日本视频在线观看| 无码精品一区二区久久久| 少妇高潮惨叫久久久久久| 国产精品综合色区在线观看| 国产日韩欧美在线播放| 亚洲欧美人成人让影院| 噜噜噜久久| 亚洲成aⅴ人在线观看| 亚洲综合第一区| 国产精品视频导航| 好吊日免费视频| 中日韩欧亚无码视频| 67194亚洲无码|