畢設日誌——011-015

2019-12-02-週一

 

新學習的知識點

深入瞭解了Android 中的消息傳遞方式,Handler,BroadCastReceiver,interface,EventBus,RxBus(RxJava),LiveEventBus(美團)。

項目進度

設計畢設產品原型圖,實現了完美的底部導航欄,以及聊天界面、約會界面、社區界面的原型圖。

項目筆記

繼續深入瞭解了騰訊動漫項目 主界面的加載邏輯,以及自定義Toast的使用,在閱讀ChannalFragment時,想要查看上方輪播圖控件的使用,但是一直沒有找到,後來終於找到了CustomBannerW100CanSlideHasBgView,原來這個輪播圖控件沒有xml文件,完全使用代碼來實現佈局的加載,同時還自定義了BannerCircleIndicator作爲底部指示器。

通過閱讀學習到了如何拋離xml文件,完全以代碼實現佈局。

 

2019-12-03-週二

 

新學習的知識點

學習和了解了一些畢設中可能會用到的框架的基本使用。

進一步熟悉了Git及sourceTree的使用。

項目進度

整理了畢設中準備用到的框架。

項目筆記

開始着手將項目遷移到AndroidX,創建分支toX,解決了很多項目遷移到AndroidX後產生的問題,在創建分支時也遇到並解決了很多Git相關的問題。

 

2019-12-04-週三

 

新學習的知識點

學習瞭如何將項目遷移到AndroidX,以及解決並記錄下遷移過程中出現的問題。

項目進度

無。

項目筆記

整理項目遷移AndroidX中遇到的問題:

前提條件:

1、項目依賴版本需要28以上 compileSdkVersion 28 

2、AndroidStudio版本3.2以上

3、gradle版本最低爲3.2.0

在gradle.properties中添加以下兩行:

#AndroidX

android.useAndroidX=true

#第三方庫遷移到AndroidX

android.enableJetifier=true

第一行表示項目使用AndroidX,第二行表示允許將項目中依賴的第三方庫遷移到AndroidX

然後點擊AndroidStudio菜單欄的Refactor->migrate to AndroidX,IDE會自動幫我們將gradle和項目中的依賴庫轉換成AndroidX版本,不過也不用擔心有的第三方庫不支持AndroidX,就算不支持,AndroidX也是兼容非AndroidX的版本的。

 

遷移過程中發現IDE警告說AndroidStudio is running on a low memory….,才發現忘了提升IDE的內存,畢竟是16G內存的電腦,不如給AndroidStudio多分配點內存,這樣速度更快,

第一種方式可以去修改默認的值在/Applications/Android Studio.app/Contents/bin/studio.vmoptions這個文件的內容,修改方式如下

調整一下這些值:

-Xms256m 

-Xmx1280m 

-XX:MaxPermSize=350m 

-XX:ReservedCodeCacheSize=240m 

-XX:+UseCompressedOops

Xms是Java堆內存,Xmx是IDE分配內存,可以將這兩個值調大,以增加AndroidStudio運行速度,不過從網上看到說不推薦這種方式,就像這裏的註釋說的那樣,不建議直接修改安裝目錄下的配置,更建議修改用戶特定的配置文件,這點熟悉mac、linux的用戶都懂,就像/etc下面的和home目錄下的配置一樣,所以建議用接下來的方式去修改這些值,否則直接修改這裏的文件,以後每當你升級AS的時候都會有個alert框提示你:這個目錄下有衝突了,還是有點煩的。

更好的方式是修改~/Library/Preferences/AndroidStudioX.X/目錄下的studio.vmoptions文件

修改完畢後Invalidate and Restart就可以了。

回到AndroidX,遷移完還會有很多問題,大多是Kotlin的問題,絕大部分通過option+enter就可以解決了,還有一些編譯的問題和option+enter不能解決的,在此記錄一下:

 

問題1:Smart cast to 'String' is impossible, because ‘x.xxxx' is a mutable property that could have been changed by this time

解決方式:https://majing.io/posts/10000004331194

 

問題2:[TAG] Failed to resolve variable '${junit.version}’

這個直接clean和Invalidate and Restart就可以了。

 

問題3:appBarLayout.  Overload resolution ambiguity.All those functions match.

這個問題的原因是項目中使用的是簡寫的形式,

appbar.addOnOffsetChangedListener { appBarLayout, verticalOffset ->….}

不知道爲什麼升級到AndroidX後,AppBarLayout不能確定簡寫所代表的類,只能取消簡寫的形式,

appbar.addOnOffsetChangedListener(

        AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->…})

問題解決。

 

問題4:帶有_viewbinding後綴的編譯文件每次都會報錯,錯誤信息爲依賴庫錯誤,檢查後發現是ButterKnife版本過低,不支持AndroidX導致的,將ButterKnife升級到最新版本問題解決。

 

因版本不兼容手動升級的第三方庫:

(2.0.1)…...

 

2019-12-05-週四

 

新學習的知識點

晚上簡單的學習了一下如何修改AndroidStudio的樣式,在plugins中搜索SexyEditor,下載並安裝後,可以自定義編譯器的背景圖片,挑選了一張鉛筆手繪動漫圖片,簡單摳圖後應用成背景圖片,簡直完美。

 

今天接觸到一個網站:https://learngitbranching.js.org/?NODEMO

一個非常神奇的網站,通過遊戲過關的方式來學習Git,通過這個網站系統且詳細的學習了一遍Git,收穫很大,非常推薦這個網站。

 

學習並實踐瞭如何製作.9.png格式的圖片,可以讓圖片自適應拉伸等情況。

項目進度

無。

項目筆記

今天需求設計稿出來了,開始實現需求,雖然都是一些簡單的需求,但過程中仍遇到一些問題,在設置背景圖片時,由於圖片要適配狀態欄,導致圖片被拉伸,視覺效果不好,項目之前就存在這個問題,但是因爲以前的圖片被輕微拉伸後看不出區別,爲了解決拉伸的問題,我將圖片製作成了.9.png格式的圖片,在做了一些適配後,完美實現了設計圖的效果,在控件中還用到了CoolapsingToolbarLayout,在收起後標題顏色是白色,無論怎麼修改Toolbar的空間屬性和style都無法改變字體顏色,後來才發現字體顏色在代碼動態更改的,且Toolbar的標題顏色,屬性屬於CoolapsingToolbarLayout而不是內含的Toolbar,將動態顏色修改爲黑色後完成需求。

 

2019-12-06-週五

 

新學習的知識點

學習瞭解了Baas框架,並調研了國內外相關的框架情況。

項目進度

通過調查研究,確定了項目所需的Baas框架,並在項目中成功搭建了框架。

項目筆記

上午完成需求後,開始調研畢業設計的構建,瞭解了國內和國外的Baas框架,firebase、StackMob、Parse、Kinvey、Amazon EC2、Bmob、LeanCloud等,考慮到易用性和服務的穩定性,從框架誕生時間和口碑上來說,國外的firebase、StackMob、Parse、Kinvey框架是比較好的,但是我最終還是放棄了國外的框架,原因主要是:開發文檔是英文,學習和查找文檔不方便,數據存儲不如國內穩定,而且考慮到以後產品擴展,可能會使用相關的收費功能,國外大都是美元或者Google支付,由於國內支付或者訪問Google都太不方便,所以未來不方便擴展收費功能。

於是從國內的幾個成熟的Baas框架中選擇,競爭力最高的就是LeanCloud和Bmob,

LeanCloud,免費的版本能夠使用的資源較少,可能難以滿足產品上線後的需求,但穩定性相比Bmob來說較高,據官網所說,知乎也是使用的他們的框架開發,Bmob勝在價格便宜,且免費版能夠使用的資源較多,但據網友評價說穩定性問題比較大,但是支持按需擴展需求,且每個月只需要99元,相比於LeanCloud的每個月最低900元競爭力很大,綜合考慮後我選擇Leancloud框架來實現產品的後端需求。

 

週記

這一週公司的任務都比較輕鬆,有時間來整理一下畢業設計項目的東西,也是第一次瞭解到Baas服務,同時整理了項目中可能會用到的第三方庫,並一直在完善產品原型圖,預計下週就可以正式開始實現項目了。

 

編輯於    2019-12-07-週六

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章