精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

適用于iOS開發者的Android開發技巧

譯文
移動開發 Android iOS
我曾經從事過五年的iOS應用開發工作,那段時間我一直在盡量避免同Android打交道——不過現在情況不同了。不管大家是否相信,Android開發其實樂趣滿滿、而且與iOS開發相比也不像大家想象的那樣差異巨大。本文跟大家一起討論一下iOS開發者如何著手開發Android應用。

我曾經從事過五年的iOS應用開發工作,那段時間我一直在盡量避免同Android打交道——不過現在情況不同了。不管大家是否相信,Android開發其實樂趣滿滿、而且與iOS開發相比也不像大家想象的那樣差異巨大。

[[111130]]

我在Android平臺上開發出這款“七分鐘鍛煉”應用,并借此學到了很多寶貴的知識。我希望這篇文章分享的一些小技巧也能幫助大家解決實際問題。請注意,我接下來進行比較的內容并不一定完全匹配,而且本文的重點也不在于完整地敘述Android開發;當然,我一定會提到自己在開發這款簡單應用的過程中所積累到的全部經驗。

IDE

我選擇使用Android Studio,而且我愿意打賭:只要測試完成,它將成為未來的業界標準。雖然很多報道稱它的運行狀態并不穩定,但在我的實際使用中、它僅僅崩潰過一次。也許我只是習慣了Xcode。

Java

無論大家對Java如何評價,說到底它也只是不過是一種編程語言而已。它能夠解決問題,而且對于經驗豐富的開發者來說、大家肯定是把主要精力放在框架而非Java身上。很高興我用不著跟J2EE扯上關系。

模擬器

我一直認為iOS模擬器讓人頭痛不已,但相比之下我才發現當初的自己還是太年輕。在稍作嘗試之后,我決定放棄Android模擬器、直接將應用部署在實際設備上——除非大家愿意拿出大量時間盯著屏幕枯等。

Storyboard / NIB

我在自己的iOS開發博客上談了很多關于Storyboard的話題,很多與我意見相左的讀者發來的一些措辭強硬的郵件讓我徹底放棄了這一交流平臺。

Android使用的布局格式為xml。它們彼此之間完全獨立。Android Studio還提供一套出色的“所見即所得”編輯器:

但大家仍然可以深入到原始xml當中——如果愿意的話(反正我一般是不愿意這么麻煩)。

相對于自動布局,大家也可以選擇其它布局容器,例如RelativeLayout以及FrameLayout之類。在這里,我們能夠以像素數量(即設備的像素容納能力)或者matchparent、wrapcontant等來設定理想的寬度、高度、填充效果、邊框以及色調。

Wrap非常適合文本內容,它會自動將調整正確的高度并設定與之相適應的尺寸,并把其余工作交給LinearLayout等特定布局方案。

雖然我還沒有用過,但Fragment看起來同樣是一種對自定義UI元素加以重新利用的好途徑。

UIViewController

Android利用一個Activity來實現UIViewConroller的功能。每一個屏幕/窗口都相當于一個Activity。我們就在這里處理大部分工作,包括將數據綁定到UI當中或者處理事件等等。

Controller/View轉換

在iOS當中我們利用segue、pushViewController、presentController等在不同屏幕之間進行遷移。但在Android環境下,我們需要使用Intent。

大家可以輕松遷移至新的activity當中,甚至能夠將一部分數據傳遞過去。

  1. public void onItemClick(...) { 
  2.        Intent i = new Intent(getBaseContext(), MyActivity.class); 
  3.        i.putExtra("row", position); 
  4.        startActivity(i); 

在新的Activity(也就是以上代碼中的MyActivity)中,我們可以提取出傳遞來的數據:

  1. protected void onCreate(Bundle savedInstanceState) { 
  2.     super.onCreate(savedInstanceState); 
  3.     setContentView(R.layout.activity_mine); 
  4.  
  5.     Bundle extras = getIntent().getExtras(); 
  6.     if (extras != null) { 
  7.         int row = extras.getInt("row"); 
  8.         .... 
  9.      } 
  10.      ... 
  11.  } 

大家也可以利用Intent來觸發各類事件,例如實現表格共享:

  1. Intent sendIntent = new Intent(); 
  2.  sendIntent.setAction(Intent.ACTION_SEND); 
  3.  sendIntent.putExtra(Intent.EXTRA_TEXT, "Share This"); 
  4.  sendIntent.setType("text/plain"); 
  5.  startActivity(sendIntent); 

IBOutlet

也許大家跟我一樣,在超過半數的情況下會忘記連接IBOutlet。

在Android當中,每一個場景/組件都擁有獨立的ID,內容如下所示:

  1. @+id/myButton 

它隨后會自動生成一個名為R的類(大家可以點擊此處了解與R相關的信息),接下來我們可以如下所示訪問代碼中的按鈕:

  1. Button button = (Button)findViewById(R.id.myButton); 

標簽

iOS開發者們經常使用的一項技巧就是利用場景標簽來保存查找信息,例如整體布局的位移。在Android環境下,大家也可以將整個對象加入到標簽當中,這種作法非常實用。

  1. row.setTag(data); 

UITableViewController / UITableViewDataSource / UITableViewCell

Android當中的ListView就相當于iOS上的UITableView。

而UITableViewDataSource在Android中所對應的則是ArrayAdapter:

  1. MyAdapter adapter = new MyAdapter(this, R.layout.listview_item_row); 
  2.    listView.setAdapter(adapter); 

其中listviewitemrow屬于某一行的布局,相當于iOS中的UITableViewCell。

其中的adapter隨后會在getView當中創建/重新使用各行。

大家也可以像這樣設置標題:

  1. View header = getLayoutInflater().inflate(R.layout.listview_header_row, null); 
  2.     listView.addHeaderView(header); 

互聯網上提供了大量優秀的指導教程,感興趣的朋友可以點擊此處查看其中之一。

圖片/資源

由于有了Asset Catalogue的輔助,iOS環境下的圖片處理變得非常輕松,通常情況下開發者只需考慮視網膜屏與非視網膜屏這兩種情況(除非大家想要在iPhone上使用專門針對iPad的圖片)。

由于Android陣營下各款設備的分辨率千差萬別,因此大家必須要提供以下四種圖片格式。

它們分別是:mdpi(普通分辨率)、hdpi(高分辨率)、xhdpi(超高分辨率)以及xxhdpi(超超高分辨率)。我個人認為xxxhdpi版本的誕生將只是時間問題。

在利用Android Studio創建項目時,大家只需要提供一份圖標、它就能自動創建出這四種格式。這種作法相信已經給從事過Android應用開發的朋友們留下了嚴重的心理陰影:別怕,大家可以隨后手動將其替換為***的像素版本。

因此,最基本的解決思路就是為每幅圖片針對每種像素密度創建一個單獨的版本,為其設定同樣的名稱并放在正確的文件夾之下;這樣Android就會視設備平臺的具體情況挑選理想的版本。

自定義字體

自定義字體在Android上實現起來同樣非常簡單:將字體復制到main/assets當中,而后就能利用以下代碼加以調用:

  1. Typeface font = Typeface.createFromAsset(getAssets(), "Lato-Regular.ttf"); 
  2.         textView.setTypeface(font); 

問題在于這種方式并不是在所有設備上都行得通,因此大家需要準備一套后備字體——不過我自己手頭的兩臺Android設備都沒有提供這樣的字體。

NSLog

日志看起來沒什么可講的,大家可以利用它來進行應用程序調試什么什么的(此處省去一千字)。System.out.println(..)似乎也同樣能夠完成這項任務。

向下兼容能力

我們都聽說過Android設備的碎片化問題。不過從本質上講,處理舊版本Android的難度并不比在舊版本iOS上使用新型iOS功能更高。不過大家可能需要對這種兼容能力加以高度重視,畢竟Android環境下這類問題的出現頻率要遠高于iOS。

我們可以通過下列代碼來檢查當前Android版本:

  1. if (Build.VERSION.SDK_INT >= 11.0)  { 
  2. ... 

以下代碼則用于防止函數調用引發的警告信息:

  1. @SuppressLint({"NewApi""LocalSuppress"})  
  2. private void myFunction() {  
  3. ...  
  4. }  

千奇百怪的漫長Android之旅

CountDownTimer

CountDownTimer——這項內置功能的存在實在讓我興奮不已,因為這正是我的七分鐘鍛煉應用所必需的要素。然而經過實際測試,它不會在onFinish之前發送***一次onTick,這是個非常詭異的bug而且到現在也沒能得到修復。詭異,真是太詭異了。

方位

當用戶轉動手中的設備時,我們的activity也會完全重置,這意味著大家必須在activity重新載入之后為其保留全部狀態與恢復機制。Android環境下的處理方式令人頭痛,但iOS則處理得很好。

Kindle Fire / Amazon Store

要讓自己的應用程序順利入駐Amazon Store,我只需要對現有成果作出兩項調整:

·YouTube SDK無法起效,因為Kindle Fire上不提供YouTube應用。不過對Flash的支持能力依然被保留下來。

·大家需要針對Amazon Store替換應用購買代碼。

大家可以利用android.os.Build.MANUFACTURER以及android.os.Build.MODEL對設備的制造商以及產品型號信息進行檢測。

點擊此處查看關于Kindle Fire各機型的詳細信息。

原文鏈接:

http://stuartkhall.com/posts/android-development-tips-for-ios-devs

原文鏈接:Android Development Tips for iOS Devs

核子可樂譯

 

責任編輯:閆佳明 來源: 51CTO
相關推薦

2020-12-11 09:06:50

異常監控云服務

2022-02-10 00:16:01

開發者元宇宙系統

2015-07-20 09:16:42

iOSWatchKit開發

2021-11-04 10:42:43

汽車軟件技術

2015-10-21 13:42:54

iOS開發watch OS2

2011-12-08 09:43:56

虛擬化vmwareVMware Fusi

2019-02-21 09:37:22

蘋果 iOS開發者

2015-04-14 09:33:17

WatchKitAPP

2019-08-12 09:00:00

物聯網云平臺IOT

2020-11-05 09:39:32

Java技術開發

2019-09-11 15:43:15

微軟LinuxMicrosoft T

2019-08-02 09:36:22

開發者技能工具

2020-05-07 10:40:37

Web工具CSS

2010-03-24 09:54:27

PHPPython

2021-06-10 10:25:12

微軟瀏覽器Windows

2019-11-14 14:44:32

開發者工具

2017-01-19 21:45:27

iOS開發者賬號

2014-08-08 10:12:44

IRC

2011-12-26 20:25:58

2011-08-17 11:08:59

點贊
收藏

51CTO技術棧公眾號

少妇一晚三次一区二区三区| 国产美女久久精品香蕉69| 国产精品二区视频| 51精品在线| av一区二区三区在线| 51精品国产黑色丝袜高跟鞋| 久久丫精品忘忧草西安产品| 在线免费成人| 亚洲第一激情av| 色涩成人影视在线播放| 国产福利第一页| 久久精品日产第一区二区 | 少妇激情一区二区三区视频| 朝桐光一区二区| 亚洲综合在线观看视频| 日韩中文字幕一区二区| 亚洲第一成人av| 男女男精品视频| 性欧美视频videos6一9| 四虎影视1304t| 欧亚精品一区| 欧美一级日韩不卡播放免费| 久久久久久久激情| 色呦呦在线播放| 国产片一区二区| 成人免费在线看片| 艳妇乳肉豪妇荡乳av| 99pao成人国产永久免费视频| 日韩中文字幕网站| 亚洲国产无码精品| av成人资源网| 制服丝袜成人动漫| 免费看污污网站| 在线播放高清视频www| 一卡二卡三卡日韩欧美| 亚洲欧洲另类精品久久综合| 深夜福利视频在线免费观看| 国产高清不卡一区二区| 国产日韩综合一区二区性色av| 日韩黄色一级大片| 国内精品99| 美女扒开尿口让男人操亚洲视频网站| 欧美三级视频网站| 天天躁日日躁狠狠躁欧美巨大小说| 日韩一区二区三区av| 牛夜精品久久久久久久| 亚洲伦乱视频| 欧美性猛交xxxx久久久| 可以在线看的av网站| 青草在线视频在线观看| 亚洲美女区一区| 青青草原国产免费| 日本中文字幕在线视频| 国产欧美日韩卡一| 日本成人三级| 精品视频二区| 国产亚洲精品aa午夜观看| 久久国产日韩欧美| 天天操天天射天天| 丁香啪啪综合成人亚洲小说| 亚洲xxx大片| 精品久久久久中文慕人妻| 久久精品国产一区二区| 国产精品亚洲аv天堂网| 亚洲自拍偷拍另类| 精品一区二区国语对白| 成人在线一区二区| 国产三级视频在线播放| 国产激情视频一区二区三区欧美 | 国产精品51麻豆cm传媒| 日韩avvvv在线播放| 国产精品91一区| 影音先锋国产资源| 精品一区二区影视| 91入口在线观看| 欧美在线 | 亚洲| 972aa.com艺术欧美| 欧美精品尤物在线| 婷婷激情在线| 亚洲三级电影网站| 2018日日夜夜| 性欧美1819sex性高清| 欧美日韩专区在线| 女王人厕视频2ⅴk| 欧美韩一区二区| 中文字幕精品久久| 东方av正在进入| 日韩午夜高潮| 国产精品久久久久久久久久久不卡| 亚洲综合精品视频| 成人中文字幕合集| 日韩欧美精品一区二区三区经典| 麻豆网站在线观看| 亚洲电影一区二区三区| 国产性生交xxxxx免费| 动漫一区二区三区| 亚洲精品小视频| 日韩在线观看视频一区二区| 一二三区精品| 成人a级免费视频| 婷婷综合激情网| 国产精品三级视频| av网站手机在线观看| 天然素人一区二区视频| 日韩欧美精品三级| 林心如三级全黄裸体| 国产真实久久| 国产欧美精品在线播放| 欧美一区二不卡视频| 中文字幕不卡在线播放| 成人在线观看你懂的| 四虎影视精品永久在线观看| 亚洲精美色品网站| 国产一区二区播放| 久久精品综合| 国产精品制服诱惑| 国产福利在线播放麻豆| 欧洲生活片亚洲生活在线观看| 人妻体体内射精一区二区| 欧美日韩播放| 91精品国产免费久久久久久| 国产绿帽一区二区三区| 久久精品亚洲国产奇米99| 久久成人福利视频| 国产一区二区三区视频在线| 亚洲少妇中文在线| 日韩欧美大片在线观看| 国产一区二区三区不卡在线观看| 欧美日韩国产综合在线| sm性调教片在线观看| 日韩视频在线观看一区二区| 亚洲色图欧美色| 久久午夜精品| 久久久久久久久久久久久久一区| 在线āv视频| 在线播放91灌醉迷j高跟美女| 久久久久久久久久久久久久久| 一区在线播放| 97人人模人人爽人人少妇 | 久久精品国产一区二区电影| 久草视频在线免费| 久久综合九色欧美综合狠狠| 男女啪啪免费视频网站| aiai久久| 久久久久久网址| 蜜桃视频久久一区免费观看入口| 亚洲欧美日韩电影| 手机在线国产视频| 久久免费av| 国产精品久久999| 成人精品一区| 欧美日产国产精品| 亚洲精品国产精品国自| 美国毛片一区二区| 亚洲欧美久久久久一区二区三区| 成人交换视频| 中文字幕亚洲精品| 一级片视频网站| 亚洲欧美在线高清| 色偷偷中文字幕| 欧美精品国产一区二区| 国产成人成网站在线播放青青 | 一区二区三区高清在线| 性生活在线视频| 欧美日韩亚洲一区二区三区在线| 亚洲自拍小视频| 欧美黄色视屏| 亚洲国产欧美一区二区三区同亚洲| 久久综合亚洲色hezyo国产| 成人精品gif动图一区| 国产二级片在线观看| 精品在线手机视频| 国产精品欧美一区二区三区奶水 | 国产精品对白交换视频 | 成人动漫精品一区二区| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 欧美日韩在线精品一区二区三区激情综合 | 性生活视频软件| 亚洲一区二区三区四区五区黄| 麻豆av免费看| 亚洲男人影院| 一区二区三区在线视频111| 国产精品国产亚洲精品| 久久久久久久久久久久av| 香蕉视频911| 欧美日韩日日骚| 青娱乐国产在线| 99热国产精品| 亚洲综合欧美激情| 亚洲天堂激情| 日韩欧美亚洲在线| 欧美午夜在线播放| 欧美在线免费观看| 麻豆传媒视频在线| 亚洲国产欧美一区| 91国内精品久久久| 五月天网站亚洲| 国产又色又爽又高潮免费| 高清在线观看日韩| 99视频精品免费| 午夜视频一区| 日韩欧美在线一区二区| 伊人久久大香线蕉av超碰| 国产不卡av在线免费观看| 麻豆传媒视频在线| 亚洲欧美日韩国产成人| www久久久久久| 欧美自拍偷拍一区| 国产午夜久久久| 国产精品国产三级国产| 给我看免费高清在线观看| 狠狠色丁香久久婷婷综| 成人免费毛片播放| 亚洲日本黄色| 成人在线免费观看网址| 欧美军人男男激情gay| 国产欧美丝袜| 精品国产一区二区三区2021| 国产精品第一第二| 91超碰免费在线| 久久视频在线直播| 高清在线观看av| 日韩av在线免费观看| 99热这里只有精品9| 欧美揉bbbbb揉bbbbb| 久久99国产综合精品免费| 亚洲影视在线播放| 午夜国产福利一区二区| 国产精品对白交换视频| 成人黄色a级片| 久久先锋资源网| 水蜜桃av无码| 成人动漫一区二区| 亚洲免费观看在线| 国产精品一级片| 国产大片一区二区三区| 久久99久久99小草精品免视看| 免费无码av片在线观看| 国产欧美在线| 一本大道熟女人妻中文字幕在线| 国产精品videosex极品| 国产精品啪啪啪视频| 在线看片不卡| 在线观看成人免费| 91精品一区国产高清在线gif| 亚洲欧洲国产日韩精品| 久久精品国产大片免费观看| 亚洲精品乱码久久久久久蜜桃91 | 日本天堂免费a| 一本一本久久a久久综合精品| 欧美h视频在线观看| 婷婷综合激情| 性做爰过程免费播放| 伊人久久大香线蕉综合四虎小说 | 国产精品手机在线| 超碰成人在线观看| 国产一区精品在线| 欧美亚视频在线中文字幕免费| 久久av二区| 国产99精品| 在线观看欧美一区| 91精品综合| 日韩五码在线观看| 久久精品五月| 精品亚洲一区二区三区四区| 精品一区二区免费| 宇都宫紫苑在线播放| 成人高清av在线| 日本黄色特级片| 99在线免费观看视频| 免费在线观看黄色小视频| 国产精品理论片| 好吊日在线视频| 亚洲专区一二三| xxxx.国产| 欧美性色黄大片| av 一区二区三区| 亚洲精品在线电影| 九色蝌蚪在线| 久久成人av网站| bl在线肉h视频大尺度| 日本免费久久高清视频| 国产成人a视频高清在线观看| 91色p视频在线| 久久久久影视| 婷婷亚洲婷婷综合色香五月| 亚洲一级毛片| 欧美日韩在线中文| 久草这里只有精品视频| 亚洲天堂2024| 国产精品久久久久久久裸模| 久久久.www| 在线免费观看日韩欧美| 99这里有精品视频| 亚洲视频第一页| 国产精品久久麻豆| 欧美资源在线观看| 国产一区二区三区亚洲综合| 牛人盗摄一区二区三区视频| 91精品久久久久久久久久不卡| www国产黄色| 国产成人精品免费视频网站| 制服 丝袜 综合 日韩 欧美| 亚洲在线观看免费| 国产成人自拍偷拍| 精品国免费一区二区三区| 国产精品免费观看| 欧美激情国产日韩精品一区18| 蜜桃视频成人m3u8| 国产九区一区在线| 亚洲色图欧美| 欧美精品无码一区二区三区| 成人福利视频在线| 91视频免费在线看| 欧美午夜理伦三级在线观看| 日韩一级片免费看| 久久最新资源网| 欧美影视资讯| 久久精品aaaaaa毛片| 欧美1区2区| 女同激情久久av久久| 久久九九国产精品| 丰满少妇乱子伦精品看片| 欧美一级二级三级乱码| 香蕉视频在线免费看| 国产成人亚洲精品| 先锋影音国产精品| 无码人妻精品一区二区蜜桃网站| 久久精品国产亚洲一区二区三区| 国产免费看av| 精品高清美女精品国产区| 亚洲高清视频网站| 久久香蕉频线观| 国内欧美日韩| 婷婷精品国产一区二区三区日韩| 欧美中文日韩| 给我看免费高清在线观看| 亚洲高清在线精品| 六月丁香综合网| 欧美成人在线免费视频| 成人精品在线| 天天成人综合网| 国内久久精品视频| av黄色免费在线观看| 在线不卡免费欧美| 欧美成人高清在线| 成人写真视频福利网| 999视频精品| 亚洲第一成肉网| 亚洲欧美国产高清| av观看在线免费| 欧美高清自拍一区| eeuss鲁片一区二区三区| 国产高清av在线播放| 成人avav在线| 天天综合网入口| 亚洲精品一区二区三区不| 男人皇宫亚洲男人2020| 欧美亚洲免费高清在线观看 | 久久久久久综合| 夜夜爽妓女8888视频免费观看| 亚洲天堂av在线免费| 秋霞国产精品| 欧美一级黄色录像片| 岛国av在线一区| 精品免费囯产一区二区三区| 亚洲天堂av在线播放| 亚洲成人毛片| 欧美中文字幕在线观看视频| av亚洲精华国产精华精华| www.国产com| 色av中文字幕一区| 福利一区三区| 欧美一级片免费播放| 国产亚洲一区二区三区在线观看 | 国产真实乱对白精彩久久| 久草国产在线观看| 国产丝袜视频一区| 日本精品久久| www.好吊操| 国产视频视频一区| 国产手机av在线| 欧美一区二区三区精品电影| 成人午夜av| 69xxx免费视频| 一本大道久久a久久精二百| 日本蜜桃在线观看| 国产精品一区二区三区精品| 久久在线精品| 九九热只有精品| 亚洲男人的天堂在线| 亚洲一区av| 国产a级一级片| 亚洲欧洲精品一区二区三区| 手机在线精品视频| 国产综合久久久久| 国产一区91| 18岁成人毛片| 亚洲图片在线综合| 日韩欧洲国产|