關(guān)于anroid的思考

1 關(guān)于項(xiàng)目大體框架的思路

? (1) 關(guān)于框架主體用的模式

????????傳統(tǒng)的mvc勝在方便,但是后期拓展性弹砚,維護(hù)性差

????????mvp勝在拓展性,維護(hù)性較好,但是接口繁多,謹(jǐn)慎處理引用

????????mvvm個(gè)人感覺(jué)可以替代ButterKnife

????????所以個(gè)人更偏向使用使用mvc+mvvm+接口回調(diào)的方式來(lái)達(dá)到mvp+mvvm的效果

? ? (2) 通過(guò)封裝接口事件按照份屬模塊類型進(jìn)行統(tǒng)一回調(diào)處理

????????例如 地圖事件 ?菜單事件 ?模塊事件 ?登錄事件

????????比如現(xiàn)在又個(gè)項(xiàng)目里面要做登錄這個(gè)功能 一般因?yàn)橛芍黜?xiàng)目衍生出其他類型的項(xiàng)目

????????在風(fēng)格上基本大同小異 這個(gè)登錄做個(gè)類比 實(shí)際項(xiàng)目中自己可以根據(jù)需求替換

????????現(xiàn)在就需要設(shè)計(jì)類 LoginView LoginViewAction 實(shí)現(xiàn)類一般會(huì)涉及到了ui操作

????????所有一般會(huì)放在Activity里面

????????????????1 初始化 ? ? ? 比如loginView(String... args)

????????????????2 注入接口 ? ? 比如loginView(loginAction)

????????????????3 實(shí)例化參數(shù) ? 開(kāi)始在回調(diào)方法里面完善對(duì)應(yīng)的邏輯

????????這種通過(guò)依賴注入提煉出來(lái)的模塊在在其他衍生的模塊可以直接拿來(lái)用 快捷方便

????????在一定程度上分割出對(duì)應(yīng)的邏輯

(3) 關(guān)于mvc+mvvm+aop的思考,aop感覺(jué)和mvp核心思想非常相像(單一職責(zé)暖庄,接口分離)

????????一個(gè)簡(jiǎn)單的注解對(duì)應(yīng)一個(gè)功能问芬,雖然在一定程度上集成麻煩,不過(guò)在在后臺(tái)使用

????????aop如火如荼的情況下,android使用非常少讓在下很是費(fèi)解类垫。

2 ?關(guān)于代碼外在表現(xiàn)形式的思考

? ? ? ? (1) 做成arr包的模式

????????????????1 優(yōu)勢(shì)在于源代碼是被封裝起來(lái)的 查看起來(lái)相對(duì)麻煩

????????????????2 劣勢(shì)在于做成這種模式的話 編譯出來(lái)的arr在windows系統(tǒng)上

? ? ? ? ? ? ? ? ? ? 直接替換arr包沒(méi)清理緩存會(huì)引用緩存的class文件

? ? ? ? ? ? ? ? ? 3 改動(dòng)不大的前提條件下 做成arr包是個(gè)不錯(cuò)的選擇

? ? ? ? (2) 做成model的形式

????????????????1 ?代碼挺暴露的司光,就像沒(méi)穿衣服一樣,容易修改

? ? ? ? ?(3) 做成apk的形式

? ? ? ? ? ? ? ? ? 1 這個(gè)就很少了,插件化開(kāi)發(fā),在eclipse下面有著sharedUserId這個(gè)

? ? ? ? ? ? ? ? ? 屬性,做成插件化開(kāi)發(fā)更方便悉患。

3 ? 關(guān)于日志文件和項(xiàng)目調(diào)試這塊

? ? ? ? (1) 關(guān)于日志 首先要說(shuō)的是studio(idea類似) 在adb沒(méi)連接的情況下

? ? ? ? ?或者端口被占等等 造成進(jìn)程奔潰的時(shí)候控制臺(tái)看不到日志 這個(gè)時(shí)候就突兀出了

? ? ? ? ? 本地日志的重要性 一般都是實(shí)現(xiàn)Thread.UncaughtExceptionHandler類残家,系統(tǒng)出現(xiàn)

? ? ? ? ? crash的時(shí)候一般會(huì)回調(diào)uncaughException方法 這個(gè)網(wǎng)上比較多的工具類就不敘述了,

? ? ? ? ? ?養(yǎng)成良好的閱讀日志習(xí)慣是很必要的售躁。

????????(2) 關(guān)于項(xiàng)目調(diào)試這塊 這就不得不說(shuō)后臺(tái)了 有的時(shí)候項(xiàng)目出了問(wèn)題為了要證明是誰(shuí)的

????????????鍋坞淮,我們一般也要調(diào)試來(lái)拿到后臺(tái)的數(shù)據(jù)甩出去才更有底氣,

?????????????首先要說(shuō)的studio陪捷, studio相比elcipse回窘,還是elcipse這塊相對(duì)于

????????????更好用,studio覺(jué)得比較實(shí)用的快捷鍵在于 F8(執(zhí)行下一步) F9(下一個(gè)斷點(diǎn)) alt+F8(測(cè)試代碼結(jié)果)

????????????大家都知道點(diǎn)擊左鍵是調(diào)試 但是點(diǎn)擊完左鍵點(diǎn)擊右鍵可以加上條件限制

????????????關(guān)于elcipse,F6(執(zhí)行下一步)F8(下一個(gè)斷點(diǎn)) Expressions add new expression(測(cè)試代碼結(jié)果)

? ? ? ? ? ? (3) 關(guān)于項(xiàng)目構(gòu)建問(wèn)題 一般可以在gradle控制臺(tái)找到具體原因 這個(gè)功能在idea里面是沒(méi)有的

4 關(guān)于混淆apk和破解apk

????????1 首先是關(guān)于混淆apk elcipse和studio都有自帶的混淆規(guī)則的文件

????????????在elispse上面在projec.properties里面proguard.cofig=這個(gè)是混淆文件的名字

????????????在studio上面在app gradel里面 設(shè)置minifyEnable true并且設(shè)置自己的混淆規(guī)則文件

????????2 關(guān)于破解apk 需要用到apktool dex2jar jd-gui還有用到的反編譯的apk

????????????????(1)首先把a(bǔ)pk后綴改成zip 然后解壓得到classex.dex文件

????????????????(2)定位到dex2jar包下面 把classex.dex文件放入

????????????????(3)終端執(zhí)行 d2j-dex2jar.bat classes.dex

????????????????(4)把生成的jar包用jd-gui打開(kāi)

????????????????????關(guān)于資源文件的反編譯

????????????????????1 定位到apktool目錄下面

????????????????????2 終端執(zhí)行apktool.bat d -f app.apk

????????????????3 得到對(duì)應(yīng)的app文件夾里面存放的是對(duì)應(yīng)的資源文件

5 關(guān)于android的aop思考和問(wèn)題

????????1 ?首先是aop是能解決什么問(wèn)題或者說(shuō)aop的優(yōu)勢(shì)(解決重復(fù)的代碼判斷,以注解的形式來(lái)簡(jiǎn)潔代碼結(jié)構(gòu))

????????????????1 單一職責(zé),對(duì)應(yīng)相同的功能邏輯對(duì)應(yīng)一個(gè)類,已注解的形式來(lái)實(shí)現(xiàn) 對(duì)內(nèi)隱藏細(xì)節(jié)對(duì)外暴露接口

????????????更符合接口隔離原則揩局,依賴倒置原則毫玖,開(kāi)閉原則。

????????????????2 ?一般核對(duì)登錄 打印方法時(shí)間 權(quán)限核對(duì) 這種重復(fù)的代碼可以減少很多 代碼會(huì)更加的簡(jiǎn)潔 邏輯結(jié)構(gòu)清楚

????????????????3 ?關(guān)于aop的實(shí)現(xiàn)現(xiàn)在一般是依托于aspject框架 因?yàn)樾枰胊jc編譯所有需要配置gradle,這里

? ? ? ? ? ? ? 只講配置gradle插件容易出現(xiàn)問(wèn)題的地方

????????????????????????1 是命名問(wèn)題項(xiàng)目名稱盡量和artfactId一致

? ? ? ? ? ? ? ? ? ? ? ? 2 是groovy下面的包名有的時(shí)候會(huì)出現(xiàn)自動(dòng)隱藏問(wèn)題 比如你創(chuàng)建包名為com.yellow.plugin 里面創(chuàng) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?建Yellow.groovy 在resources下面implementation-class=com.yellow.plugin.Yellow找不到這個(gè)類時(shí) 需要重新 ? ? ? ? ? ? ? ? ? ? ? ? ?再創(chuàng)建

????????????????????????3 編寫groovy插件的時(shí)候一定要保證語(yǔ)法正確(可以下個(gè)groovysdk自己猜測(cè)下) 要不然會(huì)出現(xiàn)插件找不到錯(cuò) ? ? ? ? ? ? ? ? ? ? ? ? ?誤付枫,本地插件更新時(shí) ?要重新上傳一遍

6 關(guān)于項(xiàng)目適配的思考(請(qǐng)先從美工拿到圖的分辨率)

????????????????1 手機(jī)(現(xiàn)在一般是1280*720烹玉,美工出圖一般也是這個(gè))

????????????????????????????????1 可以創(chuàng)建一個(gè)Library比如resource來(lái)專門做適配

????????????????????????????????2 根據(jù)美工給的尺寸分辨率來(lái)生成對(duì)應(yīng)的dimens,drawable

????????????????????????????????3 除了圖標(biāo)關(guān)于圖片都用drawable顯示

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4 weight的使用

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5 關(guān)于margin和padding的區(qū)別(padding是控件本身內(nèi)部距離,意味著點(diǎn)擊范圍增大)

????????????????2 平板(這里只講目前項(xiàng)目使用的方案)

????????????????????????????????發(fā)現(xiàn)使用最低限制符能起到一個(gè)很好的作用 用到的平板尺寸一般是2560*1600*320 這個(gè)就是sw-800

????????????????????????????????平板的尺寸更加多樣 對(duì)于限制最小寬度來(lái)做適配是相對(duì)于其他選擇是更方便和快捷的

7 關(guān)于項(xiàng)目框架的思考MVC和MVP和MVVM的必要

? ? ? ? ?1 MVC 走一步算一步的模式 需求阐滩?加 邏輯變換二打?改

????????????????????????????1承擔(dān)著視圖和邏輯的activity很容易變得臃腫

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2 曾經(jīng)做過(guò)一個(gè)聊天的頁(yè)面,輕輕松松到了2000多行代碼 甚至還有各種回調(diào)和Eventbus的使用掂榔,可讀 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?性和維護(hù)性都很差继效,不過(guò)小項(xiàng)目擼代碼還是很方便的.

????????????????????????????3 后期邏輯的變化,代碼的修改很容易造成代碼,結(jié)構(gòu)層次的混亂装获,拓展性很差瑞信。

????????????2 MVP 青出于藍(lán) 劃分出一個(gè)Present來(lái)掌管邏輯 Contract是具體接口方法的管家,分 ? ? ? ? ? ? ? ?工明確穴豫。后期項(xiàng)目

? ? ? ? ? ? ? ? ? ? ? 維護(hù)起來(lái)相對(duì)于來(lái)說(shuō)更方便凡简,層級(jí)更清楚。但是也有幾個(gè)小缺點(diǎn)

????????????????????????1 代碼量問(wèn)題比起MVC的模式要大很多

????????????????????????2 關(guān)于P持有引用造成內(nèi)存泄漏問(wèn)題

????????????????????????3在比較復(fù)雜的需求下,P的代碼量會(huì)非常大精肃,而且關(guān)于視圖控件的引用會(huì)比較多

????????????3 MVVM不知道各位看官怎么想法秤涩,反正使用過(guò)后第一印象是不需要ButterKnife了

????????????????????1 數(shù)據(jù)的雙重綁定在一定程度上,用起來(lái)是挺方便但是架不住需求的頻繁變更

? ? ? ? ? ? ? ? ? ? ?2 布局變化后需要重構(gòu)才能生成綁定的ActivityBinding

????????????????????3 Model的變化可以體現(xiàn)在ViewModel上,但是容易導(dǎo)致業(yè)務(wù)邏輯不是很明確

? ? ? ? ? ? ? ? ? ? ?4 布局layout里面要注意加上android的熟悉 比如需要在一個(gè)控制一個(gè)控件的visible 需要導(dǎo)

? ? ? ? ? ? ? ? ? ? 入<improt type="android.view.View">

8 寫的很草率,想到什么寫什么難免有遺漏之處司抱,因?yàn)楸救怂接邢蘅鹁欤缬绣e(cuò)誤,敬請(qǐng)諒解和指正,后續(xù)會(huì)抽時(shí)間寫上對(duì)應(yīng)的各種demo

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末习柠,一起剝皮案震驚了整個(gè)濱河市匀谣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌津畸,老刑警劉巖振定,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肉拓,居然都是意外死亡后频,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門暖途,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卑惜,“玉大人,你說(shuō)我怎么就攤上這事驻售÷毒茫” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵欺栗,是天一觀的道長(zhǎng)毫痕。 經(jīng)常有香客問(wèn)我征峦,道長(zhǎng),這世上最難降的妖魔是什么消请? 我笑而不...
    開(kāi)封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任栏笆,我火速辦了婚禮,結(jié)果婚禮上臊泰,老公的妹妹穿的比我還像新娘蛉加。我一直安慰自己,他們只是感情好缸逃,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布针饥。 她就那樣靜靜地躺著,像睡著了一般需频。 火紅的嫁衣襯著肌膚如雪丁眼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天贺辰,我揣著相機(jī)與錄音户盯,去河邊找鬼。 笑死饲化,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吗伤。 我是一名探鬼主播吃靠,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼足淆!你這毒婦竟也來(lái)了巢块?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤巧号,失蹤者是張志新(化名)和其女友劉穎族奢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體丹鸿,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡越走,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了靠欢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廊敌。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖门怪,靈堂內(nèi)的尸體忽然破棺而出骡澈,到底是詐尸還是另有隱情,我是刑警寧澤掷空,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布肋殴,位于F島的核電站囤锉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏护锤。R本人自食惡果不足惜官地,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔽豺。 院中可真熱鬧区丑,春花似錦、人聲如沸修陡。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)魄鸦。三九已至宴杀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拾因,已是汗流浹背旺罢。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绢记,地道東北人扁达。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蠢熄,于是被迫代替她去往敵國(guó)和親跪解。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容