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

主站蜘蛛池模板: 欧美性久久久久| 久久鸭综合久久国产| 国产精品第一区| 国产无码网站在线观看| 青青草原国产精品啪啪视频| 国产在线观看高清不卡| 香蕉国产精品视频| 国产综合另类小说色区色噜噜| 青青草国产在线视频| 国产精品深爱在线| 亚洲中文字幕23页在线| 精品国产亚洲人成在线| 四虎永久免费地址| 亚洲va在线观看| 久久毛片免费基地| 天堂av高清一区二区三区| 国产激爽爽爽大片在线观看| 欧美第二区| 97人人做人人爽香蕉精品| 中文字幕伦视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 国产精品自在线拍国产电影 | 就去吻亚洲精品国产欧美| 亚洲一级毛片免费观看| 亚洲精品无码成人片在线观看| 亚洲一级毛片| 亚洲精品无码成人片在线观看| 亚洲欧美一级一级a| 久久先锋资源| 欧美黄网在线| 中文字幕在线永久在线视频2020| igao国产精品| 精品国产自在在线在线观看| 好吊妞欧美视频免费| 国产精品欧美在线观看| 中国毛片网| 亚洲国产成人精品一二区| 一级毛片免费高清视频| 香蕉久久国产精品免| 欧美、日韩、国产综合一区| 亚洲午夜福利精品无码| 亚洲欧美在线综合一区二区三区| 亚洲无码A视频在线| 欧美啪啪一区| 视频一区视频二区中文精品| 国产女人水多毛片18| 婷婷综合在线观看丁香| 欧美日韩专区| 亚洲综合精品香蕉久久网| 精品天海翼一区二区| 欧美激情一区二区三区成人| av色爱 天堂网| 国产日本一线在线观看免费| 亚洲V日韩V无码一区二区| 亚洲侵犯无码网址在线观看| 亚洲av片在线免费观看| 99在线视频精品| 波多野结衣一区二区三区88| 欧美日韩导航| 综合色区亚洲熟妇在线| 亚洲欧美日韩精品专区| 四虎影视8848永久精品| 精品無碼一區在線觀看 | 黑人巨大精品欧美一区二区区| 国产乱人伦AV在线A| 永久毛片在线播| 中文字幕日韩久久综合影院| 精品偷拍一区二区| 综1合AV在线播放| 伊人狠狠丁香婷婷综合色| 在线观看国产网址你懂的| 国模视频一区二区| 亚洲视频免费在线| 福利国产在线| 制服丝袜 91视频| 日韩经典精品无码一区二区| 在线永久免费观看的毛片| 成人毛片免费在线观看| 美美女高清毛片视频免费观看| 久久久久亚洲Av片无码观看| 久久久久久尹人网香蕉| 91小视频在线|