資源描述:
《適用于ios開發(fā)者的android開發(fā)技巧》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、網(wǎng)址:edu.51CTO.com適用于iOS開發(fā)者的Android開發(fā)技巧我曾經(jīng)從事過五年的iOS應(yīng)用開發(fā)工作,那段時(shí)間我一直在盡量避免同Android打交道——不過現(xiàn)在情況不同了。不管大家是否相信,Android開發(fā)其實(shí)樂趣滿滿、而且與iOS開發(fā)相比也不像大家想象的那樣差異巨大。我在Android平臺上開發(fā)出這款“七分鐘鍛煉”應(yīng)用,并借此學(xué)到了很多寶貴的知識。我希望這篇文章分享的一些小技巧也能幫助大家解決實(shí)際問題。請注意,我接下來進(jìn)行比較的內(nèi)容并不一定完全匹配,而且本文的重點(diǎn)也不在于完整地?cái)⑹鯝n
2、droid開發(fā);當(dāng)然,我一定會提到自己在開發(fā)這款簡單應(yīng)用的過程中所積累到的全部經(jīng)驗(yàn)。網(wǎng)址:edu.51CTO.comIDE我選擇使用AndroidStudio,而且我愿意打賭:只要測試完成,它將成為未來的業(yè)界標(biāo)準(zhǔn)。雖然很多報(bào)道稱它的運(yùn)行狀態(tài)并不穩(wěn)定,但在我的實(shí)際使用中、它僅僅崩潰過一次。也許我只是習(xí)慣了Xcode。Java無論大家對Java如何評價(jià),說到底它也只是不過是一種編程語言而已。它能夠解決問題,而且對于經(jīng)驗(yàn)豐富的開發(fā)者來說、大家肯定是把主要精力放在框架而非Java身上。很高興我用不著跟J2E
3、E扯上關(guān)系。模擬器網(wǎng)址:edu.51CTO.com我一直認(rèn)為iOS模擬器讓人頭痛不已,但相比之下我才發(fā)現(xiàn)當(dāng)初的自己還是太年輕。在稍作嘗試之后,我決定放棄Android模擬器、直接將應(yīng)用部署在實(shí)際設(shè)備上——除非大家愿意拿出大量時(shí)間盯著屏幕枯等。Storyboard/NIB我在自己的iOS開發(fā)博客上談了很多關(guān)于Storyboard的話題,很多與我意見相左的讀者發(fā)來的一些措辭強(qiáng)硬的郵件讓我徹底放棄了這一交流平臺。Android使用的布局格式為xml。它們彼此之間完全獨(dú)立。AndroidStudio還提供一
4、套出色的“所見即所得”編輯器:但大家仍然可以深入到原始xml當(dāng)中——如果愿意的話(反正我一般是不愿意這么麻煩)。網(wǎng)址:edu.51CTO.com相對于自動布局,大家也可以選擇其它布局容器,例如RelativeLayout以及FrameLayout之類。在這里,我們能夠以像素?cái)?shù)量(即設(shè)備的像素容納能力)或者matchparent、wrapcontant等來設(shè)定理想的寬度、高度、填充效果、邊框以及色調(diào)。Wrap非常適合文本內(nèi)容,它會自動將調(diào)整正確的高度并設(shè)定與之相適應(yīng)的尺寸,并把其余工作交給Linear
5、Layout等特定布局方案。雖然我還沒有用過,但Fragment看起來同樣是一種對自定義UI元素加以重新利用的好途徑。UIViewControllerAndroid利用一個Activity來實(shí)現(xiàn)UIViewConroller的功能。每一個屏幕/窗口都相當(dāng)于一個Activity。我們就在這里處理大部分工作,包括將數(shù)據(jù)綁定到UI當(dāng)中或者處理事件等等。Controller/View轉(zhuǎn)換在iOS當(dāng)中我們利用segue、pushViewController、presentController等在不同屏幕之間進(jìn)
6、行遷移。但在Android環(huán)境下,我們需要使用Intent。大家可以輕松遷移至新的activity當(dāng)中,甚至能夠?qū)⒁徊糠謹(jǐn)?shù)據(jù)傳遞過去。1.public?void?onItemClick(...)?{?2.???????Intent?i?=?new?Intent(getBaseContext(),?MyActivity.class);?3.???????i.putExtra("row",?position);?4.???????startActivity(i);?網(wǎng)址:edu.51CTO.com1.}
7、?在新的Activity(也就是以上代碼中的MyActivity)中,我們可以提取出傳遞來的數(shù)據(jù):1.protected?void?onCreate(Bundle?savedInstanceState)?{?2.????super.onCreate(savedInstanceState);?3.????setContentView(R.layout.activity_mine);?4.?5.????Bundle?extras?=?getIntent().getExtras();?6.????if?(
8、extras?!=?null)?{?7.????????int?row?=?extras.getInt("row");?8.????????....?9.?????}?10.?????...?11.?}?大家也可以利用Intent來觸發(fā)各類事件,例如實(shí)現(xiàn)表格共享:1.Intent?sendIntent?=?new?Intent();?2.?sendIntent.setAction(Intent.ACTION_SEND);?3.?sendIntent.putExtra(