1. 程式人生 > >小米開原始檔管理器MiCodeFileExplorer-原始碼研究(0)-初步研究

小米開原始檔管理器MiCodeFileExplorer-原始碼研究(0)-初步研究

2011年對著書本Android應用開發揭祕,寫了2個月的HelloWorld。
  現在想複習並深入,我沒有耐心再去一點點地敲程式碼了。  4年前自己是個學生,實習,現在有工作,只能業餘時間研究。  這一點是非常不同的。  我希望通過研究別人的“成熟產品”,更好地全面學習。  以目標為導向,具體來說,通過研究別人的一個產品,進而全面掌握,在研究的過程中,把若干問題都解決了,從而達成“快速進步”的目標。  我們學習Java,學習Android開發,不是為了玩玩而已,也不能緊緊是“感興趣”,更重要的是解決實際的問題。實際問題通常都是要研發一個完整的產品,至少也是解決某個問題的工具,比如小米的開原始檔管理器,下載原始碼,搞好Android環境,打包,安裝到我的Coolpad手機上,就可以用了。它能夠解決Android手機上的檔案管理問題。  我對這個開源產品的評價是9/10,不足之處是,文件太少了,沒啥說明。  在成功打包執行,看到了介面和功能後,我非常喜歡,介面還可以,功能也是完整的。  這種開源專案,我最喜歡了,完全是“成型產品”,“半吊子”的開源產品,研究起來比較折磨人,各種問題。  看了看Github和官方社群,也不怎麼活躍了。  本地用Eclipse搞好環境,把Github上的程式碼搞進去。  我個人習慣用Android真機測試,速度非常快,從打包到執行,不超過10秒。如果用模擬器,至少要30秒,急死人啊~  Android原始碼,就2個包:  net.micode.fileexplorer 小米寫的程式碼  org.swiftp:一個開源的ftp server,被整合到了小米原始碼中,可以這麼理解  幾十個Java原始檔,都放在1個包裡,好不習慣啊~  在初步讀程式碼後,我優先整理了Java程式碼,分成了好幾個包。  根目錄net.micode.fileexplorer  1.頂級包    FileExplorerTabActivity等各種Activity介面入口檔案,仍然保留在頂級包裡。  2.impl     小米或Android定義的介面的實現類。  3.model    模型檔案,實體檔案,比如FileInfo.java用來表示一個Android物理檔案。這種程式碼,通常都是比較獨立的。  4.ui    檢視元件,是對Android元件的封裝和補充。和Activity不同的是,它們不是入口檔案。  5.util    工具類,和模型類類似,它們也相對比較獨立。比如,FileOperationHelper.java就具體完成了檔案的“增刪改查”。  總的來說,就是把入口、介面、介面元件、模型、工具類等分離,使得你能很快地建立對專案的整體印象。  先整體,後區域性。  要有全域性思維,這是我對自己的要求~  一個常見的問題  Android打包之後,手機上顯示“程式停止執行”,沒有別的提示。  這種問題,通常都是程式出了問題,這個地方Eclipse不夠友好,沒有給出錯誤提示。  最後,通過debug模式,打斷點,定位到了錯誤程式碼,然後增加了try-catch捕捉,最後定位到問題。  有的java檔案,包的路徑變了。  CategoryBar extends View,這個元件是1個介面型別的元件,在xml中有配置。   <net.micode.fileexplorer.ui.CategoryBar                    android:id="@+id/category_bar" android:layout_width="fill_parent"                    android:layout_height="35px" android:layout_gravity="center"                    android:layout_marginBottom="5dip">   </net.micode.fileexplorer.ui.CategoryBar>  個人觀點
:如果只會Android,只做自己工作中的那點事,而不關心Java服務端等其他人的工作,  視野會比較狹窄。我心中的“大牛”,“經理人”,“技術負責人”一定是全域性型別的人才。  我認為,全域性型別的人才更加稀缺,全域性型別的人才多是從專一型別的發展過來的。  從專一型別過渡到全域性型別,我覺得更主要是“機遇”。  “機遇”可能是別人給的,如果別人給不了,自己應該通過努力而獲得。  個人努力,需要意識和方向指引~  我是不會認可“努力比方向更重要”和“方向比努力更重要”這種片面的觀點的~  小雷FansUnion-一個正在研究Android的程式設計師  2015年10月25日  湖北-武漢-循禮門  QQ:240370818  微信:FansUnion