這篇文章是什么?
這是一系列關(guān)于企業(yè)級(jí)Android工程架構(gòu)的文章荠商,筆者準(zhǔn)備從零開始架構(gòu)工程寂恬,代碼量可能較為龐大,寫到哪講到哪莱没,貫穿能涉及到的知識(shí)點(diǎn)和企業(yè)級(jí)架構(gòu)需要注意的問題等等初肉。
看后能得到什么?
對(duì)于新手來(lái)說(shuō)饰躲,我會(huì)講到架構(gòu)的思想牙咏,設(shè)計(jì)模式的使用臼隔,真實(shí)工程中遇到的坑和代碼編寫的質(zhì)量等,比較適合有一定基礎(chǔ)但需要提升的同學(xué)妄壶;對(duì)于高手來(lái)說(shuō)可以隨意論劍摔握,筆者是個(gè)愛學(xué)習(xí)的好孩子,期間可能會(huì)出現(xiàn)錯(cuò)誤丁寄,請(qǐng)各位指教盒发。本工程教學(xué),不適用于超級(jí)大產(chǎn)品(如二馬家的產(chǎn)品)狡逢,超大型產(chǎn)品期中的復(fù)雜度各位也可想而知宁舰,但是對(duì)于中小型產(chǎn)品,完全可以勝任奢浑。
應(yīng)該怎么學(xué)蛮艰?
筆者是一個(gè)思維跳躍較快的人,對(duì)重要的知識(shí)點(diǎn)會(huì)盡量講明白雀彼,但也希望想認(rèn)真讀本文的同學(xué)壤蚜,能夠跟著筆者一起做,并且能對(duì)每個(gè)知識(shí)點(diǎn)都有舉一反三的能力(這才是真正理解的狀態(tài))徊哑⊥嗨ⅲ總之一句話,跟著筆者認(rèn)真敲一遍莺丑,就應(yīng)該都明白了著蟹。
包括哪些內(nèi)容?
首先強(qiáng)調(diào)一下梢莽,本次是仿微信的工程萧豆,不可能百分之百還原,但盡量完善現(xiàn)有微信的功能昏名。本工程本著開源的思想與大家共同學(xué)習(xí)涮雷、進(jìn)步、交流轻局,如有人用于商業(yè)用途洪鸭,筆者也會(huì)追究到底。
先來(lái)說(shuō)技術(shù)點(diǎn):
1. 微信最重要的是什么仑扑?當(dāng)然是聊天了览爵,本文將使用MQTT+PROTOBUFFER實(shí)現(xiàn)聊天
2. 最基本的網(wǎng)絡(luò)請(qǐng)求+本地?cái)?shù)據(jù)庫(kù)+圖片加載
3. 其它小技術(shù)點(diǎn),現(xiàn)在想不到夫壁,寫到哪說(shuō)到哪吧拾枣。筆者會(huì)使用第三方框架,但不會(huì)亂用,因?yàn)椴还苁褂檬裁疵贩簦罱K都要回規(guī)本質(zhì)司蔬,便于后期維護(hù)、擴(kuò)展和管理
再來(lái)說(shuō)功能點(diǎn):
主要頁(yè)面:如歡迎頁(yè)面姨蝴、登錄/注冊(cè)頁(yè)面俊啼、主頁(yè)(消息/通訊錄/發(fā)現(xiàn)/我)、聊天頁(yè)左医、聊天設(shè)置頁(yè)授帕、聯(lián)系人詳情頁(yè)、朋友圈頁(yè)浮梢、掃碼頁(yè)跛十、搖一搖頁(yè)、附近的人頁(yè)秕硝、漂流瓶頁(yè)芥映、個(gè)人信息頁(yè)、相冊(cè)頁(yè)远豺、設(shè)置頁(yè)等奈偏,這些頁(yè)面的功能需逐步添加,其它頁(yè)面如錢包躯护、公眾號(hào)等后續(xù)再定惊来。
功能:普通1v1聊天、文字棺滞、圖片裁蚁、語(yǔ)音、位置检眯、表情等厘擂,個(gè)人信息生成二維碼、掃描二維碼锰瘸,朋友圈發(fā)布等,其它功能如群聊昂灵、動(dòng)態(tài)表情等后續(xù)再定避凝。
注意:筆者是認(rèn)真的寫一個(gè)真正的企業(yè)級(jí)Android工程,可不是現(xiàn)在網(wǎng)上那些亂七八糟騙人的東西眨补,有想提升的同學(xué)管削,認(rèn)認(rèn)真真跟住筆者學(xué)習(xí),寫出代碼的藝術(shù)撑螺。
源碼地址:GitHub