真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何設(shè)計(jì)一款A(yù)ndroidAPP-創(chuàng)新互聯(lián)

  1. 開發(fā)工具的選擇

開發(fā)工具選Android studio ,其作為Google官方指定的Android開發(fā)工具,其發(fā)展已經(jīng)有了很長一段時(shí)間,目前已經(jīng)成為了Android特定的開發(fā)工具。
2.App設(shè)計(jì)風(fēng)格

成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),品牌網(wǎng)站設(shè)計(jì),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。

這一點(diǎn)對于一個(gè)開發(fā)者來說,貌似沒有決定權(quán),最終的決定權(quán)在產(chǎn)品部門手里。盡管這樣,我還是會盡力說服產(chǎn)品部門將App設(shè)計(jì)成MaterialDesign風(fēng)格。這一點(diǎn)說多了都是淚啊,作為一個(gè)Android開發(fā)者,卻整天開發(fā)著iOS風(fēng)格的App,相信很多公司都這樣,為了節(jié)省成本和時(shí)間,Android和iOS共用一套UI。舉一個(gè)最常見的例子,AndroidApp中每個(gè)頁面TitleBar的左上角放一個(gè)返回按鈕,這在iOS里是必須的,但Android有返回鍵啊,這樣設(shè)計(jì)對于Android完全是多此一舉。真心希望產(chǎn)品設(shè)計(jì)者尊重每種操作系統(tǒng)的風(fēng)格及使用習(xí)慣,不要再設(shè)計(jì)不倫不類的產(chǎn)品。MaterialDesign正好提供了一種這樣的規(guī)范,自MD規(guī)范發(fā)布以來,其優(yōu)雅的設(shè)計(jì)和清新的風(fēng)格已吸引了大批設(shè)計(jì)者和開發(fā)者,如今MD設(shè)計(jì)不止在Android上(已有官方類庫支持MD風(fēng)格),甚至在CSS、HTML、JavaScript網(wǎng)頁設(shè)計(jì)上都越來越火。因此,對于App的設(shè)計(jì)風(fēng)格,MaterialDesign當(dāng)仁不讓,也許你曾經(jīng)錯過了AndroidDesign,請不要再錯過Material Design。
3.版本支持
對于Android要支持的最低版本,可以參考各個(gè)版本的市場占有率,其實(shí)最靠譜的是根據(jù)自家App的統(tǒng)計(jì)數(shù)據(jù)來決定,目前我們的App最低支持4.4。以個(gè)人觀點(diǎn)認(rèn)為,雖然4.x的版本仍然有一部分用戶,但其實(shí)手機(jī)更新?lián)Q代特別快,為了更好的用戶體驗(yàn),也為了應(yīng)用更新的API(很多第三方庫也都有版本要求),應(yīng)該提高最低支持的版本,大概3.0為宜,即API Level為11。
4.App框架設(shè)計(jì)
相信大家都有體會,隨著功能模塊的增加,App越來越大,如果沒有良好的架構(gòu)設(shè)計(jì),則代碼將會變得臃腫且不易維護(hù),各功能模塊的耦合度會越來越高。因此可以把App模塊化,將一個(gè)完整的App劃分成幾個(gè)相對獨(dú)立的模塊,這樣即可以降低模塊間的耦合也利于復(fù)用。

1.網(wǎng)絡(luò)模塊
已經(jīng)很少有單機(jī)版的App了吧,大部分都需要聯(lián)網(wǎng),從服務(wù)器請求數(shù)據(jù),因此網(wǎng)絡(luò)模模塊必不可少。GitHub上的開源網(wǎng)絡(luò)框架也特別多,個(gè)人認(rèn)為可以使用開源框架,目前我會選okHttp或者Volley,也許以后會有更好的網(wǎng)絡(luò)框架出現(xiàn)。注意如果使用開源框架,則必須要閱讀其源碼,必須能夠駕馭它,這樣就不至于當(dāng)bug出現(xiàn)時(shí)束手無策。當(dāng)然還可以自己寫網(wǎng)絡(luò)模塊,目前我們的App網(wǎng)絡(luò)模塊就完全是自己寫的,這樣的好處是自己熟悉所寫的代碼,當(dāng)有bug時(shí)可以迅速定位問題,同時(shí)注意處理一些聯(lián)網(wǎng)過程中的細(xì)節(jié),如:

(1)對HTTPS的支持、HTTPS證書的驗(yàn)證(目前很多做法都是默認(rèn)允許所有HTTPS證書的,其實(shí)這樣做是不安全的,應(yīng)當(dāng)真正地做證書校驗(yàn))

(2)支持Wap方式上網(wǎng),移動、聯(lián)通、電信代理的設(shè)置

(3)支持重定向、數(shù)據(jù)壓縮傳輸?shù)?/p>

(4)其他值得注意的問題

自己寫網(wǎng)絡(luò)框架可以完美地處理這些細(xì)節(jié),但時(shí)間成本比較大。如果使用開源框架,一般都沒有處理這些細(xì)節(jié),因此我們可以在第三方框架上做些修改,這樣時(shí)間成本將會節(jié)省很多。在這里我給大家推薦幾個(gè)比較流行的網(wǎng)絡(luò)庫:
okgo:OkGo - OkHttpUtils-2.0.0升級后改名 OkGo,全新完美支持RxJava

項(xiàng)目地址:https://github.com/jeasonlzy

該庫是封裝了okhttp的網(wǎng)絡(luò)框架,可以與RxJava完美結(jié)合,比Retrofit更簡單易用。支持大文件上傳下載,上傳進(jìn)度回調(diào),下載進(jìn)度回調(diào),表單上傳(多文件和多參數(shù)一起上傳),鏈?zhǔn)秸{(diào)用,可以自定義返回對象,支持Https和自簽名證書,支持cookie自動管理,支持四種緩存模式緩存網(wǎng)絡(luò)數(shù)據(jù),支持301、302重定向,擴(kuò)展了統(tǒng)一的上傳管理和下載管理功能
retrofit:Retrofit 是 Square 公司出品的默認(rèn)基于 OkHttp 封裝的一套 RESTful 網(wǎng)絡(luò)請求框架,不了解 RESTful 概念的不妨去搜索學(xué)習(xí)下,RESTful 可以說是目前流行的一套 api 設(shè)計(jì)的風(fēng)格,并不是標(biāo)準(zhǔn)。Retrofit 的封裝可以說是很強(qiáng)大,里面涉及到一堆的設(shè)計(jì)模式,你可以通過注解直接配置請求,你可以使用不同的 http 客戶端,雖然默認(rèn)是用 http ,可以使用不同 Json Converter 來序列化數(shù)據(jù),同時(shí)提供對 RxJava 的支持,使用 Retrofit + OkHttp + RxJava + Dagger2 可以說是目前比較潮的一套框架,但是需要有比較高的門檻。

Retrofit 的具體使用方法與地址在這里:

http://square.github.io/retrofit/
Volley:Volley 是 Google 官方出的一套小而巧的異步請求庫,該框架封裝的擴(kuò)展性很強(qiáng),支持 HttpClient、HttpUrlConnection,甚至支持 OkHttp,具體方法可以看 Jake 大神的這個(gè) Gist 文件:

https://gist.github.com/JakeWharton/5616899

而且 Volley 里面也封裝了 ImageLoader ,所以如果你愿意你甚至不需要使用圖片加載框架,不過這塊功能沒有一些專門的圖片加載框架強(qiáng)大,對于簡單的需求可以使用,對于稍復(fù)雜點(diǎn)的需求還是需要用到專門的圖片加載框架。

Volley 也有缺陷,比如不支持 post 大數(shù)據(jù),所以不適合上傳文件。不過 Volley 設(shè)計(jì)的初衷本身也就是為頻繁的、數(shù)據(jù)量小的網(wǎng)絡(luò)請求而生!

關(guān)于 Volley 的具體用法可以見我很早在 GitHub 的一個(gè) demo :

https://github.com/stormzhang/AndroidVolley
OkHttp: OkHttp 是 Square 公司開源的針對 Java 和 Android 程序,封裝的一個(gè)高性能 http 請求庫,所以它的職責(zé)跟 HttpUrlConnection 是一樣的,支持 spdy、http 2.0、websocket ,支持同步、異步,而且 OkHttp 又封裝了線程池,封裝了數(shù)據(jù)轉(zhuǎn)換,封裝了參數(shù)使用、錯誤處理等,api 使用起來更加方便??梢园阉斫獬墒且粋€(gè)封裝之后的類似 HttpUrlConnection 的一個(gè)東西,但是你在使用的時(shí)候仍然需要自己再做一層封裝,這樣才能像使用一個(gè)框架一樣更加順手。

OkHttp 的具體使用方法這里就不贅述,地址在這里:

http://square.github.io/okhttp/

在APP的開發(fā)過程中,圖片是APP 不可或缺的元素,而且圖片是占用內(nèi)存的大戶,因此圖片管理框架特別重要,不好的圖片框架容易引起內(nèi)存泄露甚至導(dǎo)致崩潰。當(dāng)然可以自己實(shí)現(xiàn)圖片框架(目前我們也是這樣做的),實(shí)現(xiàn)圖片的下載、解碼、緩存等關(guān)鍵環(huán)節(jié)。個(gè)人建議可以采用一些比較好的圖片庫,也許會比我們自己管理圖片更完善和高效。我會推薦如下幾個(gè)圖片管理庫:
(1)Glide,Google的一些官方App,如Googlephotos都使用了,還要解釋更多嗎?

(2)Fresco,F(xiàn)aceBook的開源庫,功能超級強(qiáng)大,支持WebP、Gif、JPEG漸進(jìn)顯示,關(guān)鍵是其對圖片內(nèi)存的設(shè)計(jì)思想,使得圖片內(nèi)存開銷大大減少。

(3)Android-Universal-Image-Loader,在出現(xiàn)上述圖片庫之前,貌似這個(gè)最火吧,之前個(gè)人的App中也用了它。

(4)Picasso,Square的開源庫,據(jù)說Glide就是參考Picasso設(shè)計(jì)的。
對于APP 的設(shè)計(jì)模式個(gè)人采用MVVM或者M(jìn)VP模式進(jìn)行設(shè)計(jì)。
10.App的安全性考慮
AndroidApp的安全問題很少有人重視,但這的確是一個(gè)很嚴(yán)重的問題,一些好的App經(jīng)常被人破解。建議將一些核心算法等寫成.so庫,重要的邏輯放在服務(wù)器端,數(shù)據(jù)請求采用加密等,另外打包APK時(shí)至少要混淆代碼,還可以采用APK加殼機(jī)制,總之這類的防范措施永遠(yuǎn)不嫌多。

一口氣漫無邏輯地寫了這么多,可能會有遺漏的內(nèi)容,后續(xù)會補(bǔ)充完善。我想如果按照上述原則,至少可以開發(fā)出一款不錯的App。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


標(biāo)題名稱:如何設(shè)計(jì)一款A(yù)ndroidAPP-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/iojhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部