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
  項目名稱:浙江省實驗教學示范中心

主站蜘蛛池模板: 黄片在线永久| 日本一区二区三区精品AⅤ| 精品国产三级在线观看| 欧美日韩免费在线视频| 一本大道在线一本久道| 伊人激情综合网| 欧美成人午夜在线全部免费| 人人妻人人澡人人爽欧美一区| 日本福利视频网站| 亚洲无码电影| 国产无码精品在线播放| 99视频精品全国免费品| 超碰91免费人妻| 大香伊人久久| 亚洲永久免费网站| 国产成人久视频免费| 免费毛片网站在线观看| 亚洲综合中文字幕国产精品欧美| 久久免费视频6| 91小视频在线观看| 国产女人在线| 亚洲欧美日韩中文字幕在线一区| 亚洲欧美人成电影在线观看| 国产精品免费久久久久影院无码| 欧美在线导航| 亚洲综合18p| 国产福利免费在线观看| 欧美日韩中文国产| 国语少妇高潮| 高清免费毛片| 亚洲欧美天堂网| 国产第三区| 国产在线拍偷自揄拍精品| 国产欧美日韩免费| 日韩色图在线观看| www.91中文字幕| 少妇精品网站| www.亚洲国产| 久久久久青草大香线综合精品 | 九九热免费在线视频| 欧洲亚洲一区| 97国产精品视频自在拍| 色成人综合| 性喷潮久久久久久久久| 亚洲av日韩av制服丝袜| 18禁色诱爆乳网站| 日韩av无码DVD| 亚洲欧美自拍中文| 青青草国产一区二区三区| 99免费在线观看视频| 国产成a人片在线播放| 野花国产精品入口| 国产黄网站在线观看| 九九精品在线观看| 人妻免费无码不卡视频| 久久国产精品麻豆系列| 欧美亚洲国产日韩电影在线| aa级毛片毛片免费观看久| 亚洲乱强伦| 亚洲黄色视频在线观看一区| 国产成人精品在线1区| 亚洲人成网站观看在线观看| a级毛片免费网站| 免费jizz在线播放| 中文字幕有乳无码| 97视频免费在线观看| 日韩在线网址| 国产无套粉嫩白浆| 91啦中文字幕| 国产午夜无码专区喷水| 永久免费精品视频| 伊人五月丁香综合AⅤ| 国产成人综合久久| 激情亚洲天堂| 亚洲侵犯无码网址在线观看| 九九九久久国产精品| 日本一区高清| 亚洲浓毛av| 91亚洲免费| 日本一区高清| AV无码一区二区三区四区| 国产一级特黄aa级特黄裸毛片 |