⑴ 自學java做android studio的畢設怎麼學啊
1.Java 基礎;2.搭建Android 開發環境3.了解Android 運行原理以及一個工程項目結構4.如何系統學習Android5.推薦一些實用的資源6.總結(註:一直沒有時間整理一些鏈接文件,看到大家對這篇文章這么感興趣,我重新整理我文章裡面的鏈接,朋友們可以點擊進去看一看,都是我精心整理的一些資料,希望對你們有所幫助。文章僅是個人意見,不喜勿噴,如果有更好意見和簡介,歡迎交流!(鞠躬))!
java語言基礎
首先肯定需要的就是java語言了,雖然有一些別的語言也可以開發android,但是都是小眾。因為Android SDK 是基於Java 開發的,使用的語言是Java,如果有了Java 基礎,學Android 就會事半功倍;比如在Android 中要使用到的介面,抽象類,類型轉換,繼承,覆蓋,匿名內部類,多線程,這些都是Java 語言的,如果以前沒有基礎過,學Android 會很郁悶的;當然如果你有C++ 基礎,當然也可以基於NDK 開發,可以不使用Java;
最近冒出來的kotlin是google官方支持的開發語言,但是靠真正流行還需要很長時間,個人推薦還是以java為主,但是kotlin盡量也要學習一下,多學一門語言怎麼也是有好處的
對於沒有java基礎的同學我推薦一些資源:
Mars 的Java4Android視頻資源,可以在51cto中找到,很好的視頻資源,適合初學者學習,我當初就是從這里開始了程序員這條不歸路。
《Java從入門到精通(第3版)》從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發需要掌握的知識。
如果需要更多書籍資源文件的朋友請點擊安卓書籍--從入門到精通
搭建Android開發環境
現在大部分開發人員都用的是Android Studio,從2014年底到現在,經過了三年時間的完善,AS已經成為了大部分Android程序員的開發神器,(筆者剛開始做Android 就用的AS,沒體會到什麼,但是我發現用過AS的人都會深深的迷上它,而去放棄Eclipse了)
在這裡面就不多說了大家可以去看看我對Studio的介紹:
Android Studio詳解 AndroidStudio 提高開發效率的插件
了解Android 運行原理,一個工程的項目結構
有兩種流行的結構:老的Ant & Eclipse ADT 工程結構,和新的Gradle & Android Studio 工程結構, 你應該選擇新的工程結構,如果你的工程還在使用老的結構,考慮放棄吧,將工程移植到新的結構。這里我們對兩個項目結構做一下對比
老的結構:
old-structure
├─ assets
├─ libs
├─ res
├─ src
│ └─ com/futurice/project
├─ AndroidManifest.xml
├─ build.gradle
├─ project.properties
└─ proguard-rules.pro
新的結構
new-structure
├─ library-foobar
├─ app
│ ├─ libs
│ ├─ src
│ │ ├─ androidTest
│ │ │ └─ java
│ │ │ └─ com/futurice/project
│ │ └─ main
│ │ ├─ java
│ │ │ └─ com/futurice/project
│ │ ├─ res
│ │ └─ AndroidManifest.xml
│ ├─ build.gradle
│ └─ proguard-rules.pro
├─ build.gradle
└─ settings.gradle
主要的區別在於,新的結構明確的分開了'source sets' (main,androidTest),這是Gradle的一個理念。 通過這個你可以做到,例如,添加源組『paid』和『free』在src中,讓你的應用程序具有付費和免費的兩種模式的源代碼。
你的項目引用第三方項目庫時(例如,library-foobar),擁有一個頂級包名app從第三方庫項目區分你的應用程序是非常有用的。 然後settings.gradle不斷引用這些庫項目,其中app/build.gradle可以引用。
如果需要更加詳細的介紹請點擊下方鏈接
介紹內容有 Android 開發規范, 架構, 布局技巧, 以及使用一些有助於快速開發相關工具等等
如何系統學習Android
因為要介紹的東西太多了,這里給大家推薦一張安卓知識體系的圖片,最近看到別人整理的一份也挺好的,對我收益很大,如果需要請點擊一個老鳥發的公司內部整理的 Android 學習路線圖
推薦一些實用的資源
推薦大家一個網站「極客導航——程序員自己的導航」,裡面介紹了常用網站,工具大全,經典博客,進階之路,源碼下載,跳槽指南,精品網站,邊角作用的一些常用網站,一些Android大牛的博客都在裡面,我經常會看。
總結
1. 如果你是非科班畢業想要轉行編程,看了我的經歷你一定很有信心與動力,我能,你一樣能,何況我中間走了這么多彎路; 2. 如果你接觸過一些數據結構、編程語言之類的,想要學習編程,你更應該有信心,你比那些非科班的人已經多了一些基礎,你要做的只是堅定信念,堅持走下去; 3. 不要感慨上天的不公平,我一路走來很悲催,走了太多的彎路,遇到了太多的困難,都是我這輩子難以忘記的,但同時我是幸運的,因為我有她,我感謝我女朋友無數個日夜的理解與支持,上帝在給你製造坎坷的時候總會對你有些眷顧; 4. 如果你准備或已經在做開發的人員,沒有信心或動力,又或是對未來迷茫的時候,姑且當做一篇勵志小說來看,你要做的就是做好你當下在做的事,相信你的付出一定能有所收獲;
建議
寫到這里想要給點建議,那就以一個反例的身份給出事後的一些建議吧:
1.每天花1小時看書,難的不是1小時,難的在堅持; 2.英語對編程來說很重要,試著習慣英語閱讀;(扇貝系列的軟體) 3.數據結構和演算法要學好,這算是對編程來說最重要的課了,以後不見得能用得上,但用的時候起碼你有印象; 4.善於利用搜索引擎,從用Google做起,學會英文關鍵字搜索,有問題第一時間想到去搜索而不是去請教別人; 5.多去混GitHub,目前最流行的開源社區,多參與開源項目,慢慢試著讀牛人們的代碼,時機到的時候自己也可以為6.開源社區貢獻力量,可以這樣說在GitHub上認真混一年,比你在大學四年學的東西要多的多; 7.第一份工作很重要,因為你會受一些周圍同事、公司氛圍的影響。 8.最後一條是盡快找一個女朋友,因為你的工作使你接觸到的女性會越來越少。
大家都有了以上相同的教程,但是人和人之間的區別在於:別人有顆更強大的內心,可怕的是比你聰明的人比你還要更努力!!
當你下定決心,准備前行的時候,剩下的只有堅持了。。。
最新Java教程全套
第1階段 :Java基礎
1.認知基礎課程2. java入門階段3. 面向對象編程4. 飛機小項目5. 面向對象和數組6. 常用類7. 異常機制8. 容器和數據結構9. IO流技術10. 多線程11. 網路編程12. 手寫伺服器13. 註解和反射14. GOF23種設計模式15. 正則表達式16. JDBC資料庫操作17. 手寫SORM框架18. JAVA10新特性19.數據結構和演算法20. JVM虛擬機講解21. XML技術解析
第2階段:資料庫開發全套課程
1.Oracle和SQL語言2.Mysql快速使用3.PowerDesigner使用4.JDBC資料庫5.Mysql優化6.oracle深度講解
第3階段:網頁開發和設計
1.HTML基礎2.CSS基礎3.JavaScript編程4.jQuery5.easyUI
第4階段:Servlet和JSP實戰深入課程
1.Servlet入門和Tomcat2.request和response對象3.轉發和重定向_Cookie4.session_Context對象5.JSP6.用戶管理系統7.Ajax技術8.EL和JSTL標簽庫9.過濾器10.監聽器
第5階段:高級框架階段
1.Mybatis2.Spring3.Spring MVC4.SSM框架整合5.RBAC許可權控制項目6.Hibernate37.Hibernate48.jFinal9.Shiro安全框架10.Solr搜索框架11.Struts212.Nginx伺服器13.Redis緩存技術14.JVM虛擬機優化15.Zookeeper
第6階段:微服務架構階段
1.Spring Boot2.Spring Data3.Spring Cloud
第7階段:互聯網架構階段
1.Linux系統2.Maven技術3.Git4.SVN5.高並發編程6.系統和虛擬機調優7.JAVA編程規范8.高級網路編程9.Netty框架10.ActiveMQ消息中間件11.單點登錄SSO12.資料庫和SQL優化13.資料庫集群和高並發14.Dubbo15.Redis16.VSFTPD+NGINX
第8階段:分布式億級高並發電商項目
1.基於SOA架構介紹2.VSFTPD和Nginx和商品新增3.商品規格參數管理4.Jsonp5.CMS模塊6.廣告位數據緩存7.SolrJ和SolrCloud8.商品搜索9.商品詳情10.單點登錄11.購物車12.訂單系統13.分庫和分表14.分布式部署
第9階段:畢設項目第1季
1. 電子政務網2. 企業合同管理系統3. 健康管理系統4. 商品供應管理系統5. 土地檔案管理系統6. 聊天室設計和實現7. 碼頭配套和貨櫃管理系統8. 百貨中心供應鏈系統9. 病歷管理系統10. 超市積分管理系統11. 動漫論壇12. 俄羅斯方塊13. 個人博客系統14. 固定資產管理系統15. 影視創作論壇16. 屏幕截圖工具17. 超級瑪麗游戲18. 飛機大戰游戲19. 雷電
第10階段:畢設項目第2季
1. 微博系統2. 寫字板3. 坦克大戰4. 推箱子5. 電腦彩票系統6. 記賬管理系統7. 新聞發布系統8. 醫院掛號系統9. 倉庫管理系統10. 停車場管理系統11. 網路爬蟲12. 酒店管理系統13. 企業財務管理系統14. 車輛管理系統15. 員工信息管理系統16. 旅遊網站17. 搜索引擎18. 進銷存管理系統19. 在線考試系統20. 物流信息網21. 住院管理系統22. 銀行櫃員業務績效系統
⑵ 要做程序員需要學會什麼
其實簡單來說,程序員的工作就是使用編程語言,根據需求寫出一個程序。
但是,在這個過程中,涉及如下幾個方面:
使用的編程語言 程序員需要選擇一門或者多門語言來編程,不同的語言適合編寫不同的程序,目前主流編程語言包括,Java、JavaScript、Python、C++、php以及其他小語種等等,每種編程語言適合開發的程序有所不同。目前從程序應用分來,主要可以分為三類a 企業應用,主要用於解決企業業務。各種企業管理後台系統,銀行系統,公安系統,圖書管理系統等等。
b 互聯網應用,面向互聯網用戶,為互聯網用戶提供各類服務。比如現在的京東淘寶各類電商系統等。
c 移動應用,各類在移動端使用的APP,有面向互聯網用戶的APP,也有面向企業內部的APP。
目前相對而言,在移動應用和互聯網應用方面,資本投入比較熱的風口,程序員的薪資較高。企業應用,發展了很多年,相對平穩。
2. 明白需求,實現需求
需求就是編寫程序的要求。一個程序要編寫成什麼樣子,具備哪些功能,都是由需求來具體說明。程序員要需要能看懂需求文檔,並且能准確地使用編程語言,根據需求中的要求來編寫成程序。企業開發的項目,往往會由該程序的架構師提供一個程序框架,程序員在該框架的規范下進行編程,實現需求的功能,以確保程序的規范、可讀,以及可維護性。
3. 日常工作寫程序
一個軟體開發一般流程是產品經理根據用戶需求做一個項目出來,然後UI設計師做一些圖片設計,前端開發編寫頁面,後台開發編寫核心編程,然後介入一些大數據和人工智慧,通過測試之類上線實施,後期還有運維進行相關維護。
程序員一般大多指的是前端和後台寫代碼程序的開發人員,除了編寫代碼,可能還需要通過介面和其它系統對接,實現系統間的數據交換。像單體測試,是程序員對自己寫好的程序單元進行測試,檢測這個程序單元數據輸入和數據輸出是否符合預期等等。測試出來的問題,需要修改正確,然後再測試,直至沒有問題。和同事共同開發的時候也需要聯合測試,以及用戶測試過後如果存在BUG繼續進行修改。
⑶ 如何自學Android
因為項目需要,8月中旬開始決定做安卓的程序,所以馬上就開始學習安卓方面的開發知識,把最近的學習實踐經歷和大家分享分享。不要一開始就下載一大堆資料,視頻,然後就不知道做什麼了,要給自己定個目標,我要做什麼?我怎麼達到目標?
我不懂java,但是懂C#和C++,所以我沒主張去單獨學習java語言,如果你是個最最初的新手,沒啥語言基礎,那你必須先看看java語言,不要很詳細看,因為學習Android中,你也是在學習java。
1. 明確目標
沒有目標的學習,會感覺到後面沒什麼成果,在1年前,我也打算學習android開發的,但是目的就是學習,到網上去下載很多學習的視頻,然後把開發環境搭建起來,能把Helloworld運行起來,能打些log,Activity之間也能互相切換了,但是後面也就不了了之了,因為不知道學了要干什麼。依葫蘆畫瓢的做了幾個例子,因為裡面的問題都是已經解決的,所以也沒能深入的系統學習。
這次因為產品的需要,要做Android版本,要做的東西一開始就已經設計好了,見搖搖2選1安卓版本,剛開始也不知道裡面有些什麼技術難度,但是要做的目標已經明確了,而且也沒有現成的,碰到問題就查資料,慢慢地解決,這樣有的放矢,學習的效果非常好。既有現成的技術可以使用,又有些技術,需要查比較多的資料,這樣記憶就比較深刻,所掌握的知識也比較系統。
接下來的一系列文章,我會把在開發搖搖2選1中遇到的問題,給大家詳細講講,程序雖然小,但是五臟俱全,做Demo和做產品的要求完全不是一個級別,如果Android大牛感覺知識講的比較淺,那可以繞道,畢竟我是從一個完全的新手開始的。
2. 了解安卓開發中比較困難的地方
學習一個新平台,就要知道此平台開發要面臨的困難有哪些,不要做到最後,這些問題沒有考慮,那就比較糟糕了。在網上搜索了下,安卓開發困難總結如何:
1)安卓系統版本比較多,各版本之間的兼容性是個問題,此為系統碎片。
2)安卓設備千變萬化,設備難以統一,每個產品都成為獨立,分散的Android碎片。
3)解析度五花八門。一個產品,可能需要多個界面排版,人工消耗比較大。
看到這張圖,有沒有頭疼的感覺?
總結成一句話:Android的碎片化真是要來開發者的命。
3. 搭建開發環境
"巧婦難為無米之炊",開發環境肯定是第一件要做的事情,這類的文章已經很多了,我也不多說了,多說也就比較無聊了。感謝吳秦,也是博客園里的一員,他寫的很詳細了,見這里。
4. 查看網友總結的一些經驗。
不是什麼都查看,開發中遇到什麼問題,就去查看什麼問題,這樣你查到的知識,馬上就能深入的實踐,這樣知識就鞏固了。
1)首先當然要看Android的開發文檔,裡面其實大部分的知識都有了,還有就是SDK自帶的Samples。
2)博客園里搜索「Android開發」,會出來一大把,很多網友都是很系統的講解了。
3)eoe
android社區,裡面有很多網友上傳了現成的demo代碼,裡面很多都是模仿現在流行的產品的界面開發,很是不錯。
5. 掌握調試方法
個人一直認為,調試技巧是開發中最重要的技能,如果調試技能比較差,不知道如何查找問題,那不會是個好的程序員,其技能也不會高到哪裡去。
Android做下來,感覺調試這塊做的很不錯了,這要感謝Eclipse
IDE做的比較不錯,但是Android的界面排版部分,真的不敢恭維,Eclipse時間用長了,佔用內存真是大。有哪位高手能否告訴我下,你們界面排版是用什麼的?
Android里,如果程序出了問題,有些是一下跟蹤不到的,這時就要用到Log類了,Log類使用很簡單,就不多說了。
自己一個很有感觸的經驗,如果你真的打算做Android開發,那就買一個設備,這樣能大大提高開發效率,模擬器有時用起來真是麻煩,而且開發的設備不要很好的,只要設備解析度是主流的,感測器的支持最好全點就夠了,國產的手機里,華為的還不錯,或者到淘寶上去買個二手的,投資不大。真的買了投資,可能也會增加你學習Android的決心。
6. 程序框架
經過10多年的經歷,認識到程序的框架對開發產品真的是起到舉足輕重的作用。一個好的產品,如果有個好的程序框架,那真是事半功倍,可能開始所做的工作會比較多,很難看到令人激動的成果,但是相信我,絕對值得。一開始,我也是比較注重程序界面開發,很快就開發出界面來,而且著實比較激動,因為有東西出來了,但是後面的事情,真是令人發狂,想從頭再來,太遲了,離計劃的時間比較近了,時間不允許,只有硬著頭皮往上打補丁,硬著交付第一個版本,第二個版本或者後面的版本,遲早是要重來的。所以在後面帶領團隊開發的時候,在開發前,都是要討論程序框架,留出很大部分時間進行程序框架開發,及在開發中不斷的改進。
剛接觸Android,不知道用什麼程序框架,所以查了很多資料,一開始看到一個程序框架,感覺很不錯,所以一開始就使用了下面這個程序框架。
⑷ 如何學習安卓開發
目前國內的Android開發還是主要以應用開發為主,主要分成3類:為企業開發應用、開發通用應用(放到Android Market或者其他App Market銷售)以及游戲開發(放到Android Market或者其他App Market銷售)。第一類開發者一般身處規模較大的公司,這些公司主要為自有品牌或者其他品牌設計手機或者平板電腦的總體方案。除了根據需求對系統進行定製外,更多的工作在於為這些系統編寫定製的應用。第二類開發者,一般處於創業型公司或者是獨立開發者,他們的盈利方式主要是2種:為國外公司進行外包開發,或者通過Google的移動廣告(AdMob)通過廣告點擊分成。而理論上的通過付費下載的形式來盈利的,現在國內鮮見成功者。第三類開發者,目前和第二類開發者類似。下圖是開發者提交的應用和游戲的數目所佔的比例圖,從中也可以看出應用開發數目遠超游戲開發。
上面是Android的體系架構圖,自上而下分別為應用層、應用框架、類庫和Alvik運行時環境以及Linux內核。一般來說,我們想從事Android開發,可以從應用開發作為切入點,逐漸熟悉其整個體系,並慢慢往其底層滲透,從而能做到軟硬兼備,既涉及到應用開發的透徹掌握,又幫助大家在系統開發層面上做好充分的准備。而從學習的路線圖上來說,先熟悉Java SE編程,能比較熟練的使用Java語言進行編程,熟悉Java語言語法特點,熟悉Java IO、Java線程、網路編程、XML處理等。另外,因為很多的Android應用在運行時都需要去訪問網站伺服器,因此,熟悉一種網路編程語言也是必要的。無論是從學習的方便性還是市場佔有情況來說,使用JSP/Servlet都是不二的選擇,另外,在這個階段也順便學習一下SQL語法和熟悉一種SQL資料庫,以方便後續Android開發中進行SQLite資料庫開發。學習完這些課程後,就可以開始進行Android的應用開發的學習,例如Android中的UI組件、基本組件、數據存儲、感測器、圖形圖像處理、多媒體處理、游戲開發等。為了更好地進行應用編程,可以有選擇的對其Lib類庫進行分析,以加深對其工作機制的理解。再往下,就是操作系統層級了,這里應該要對Linux操作系統進行學習,熟悉其內核和運行原理,熟悉ARM體系架構以及常用指令,並熟悉驅動的編寫方式,掌握其移植方法等。
⑸ 我想學Android應用開發,如何學習
①Java基礎知識
a)Java基礎語法:這部分內容必須爛熟於胸。可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻裡面的練習,都需要仔仔細細的完成;
b)設計模式:由於在Android系統的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對於Android的理解就會大打折扣
②Linux基礎知識
Android系統的基礎是Linux操作系統。在開發過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必須的
③資料庫基礎知識
這項是一個增刪改查的資料庫操作,可以看書學習。
④網路協議
至少需要學習兩種基礎的協議,HTTP協議與Socket協議;
⑤Android基礎知識
⑥伺服器端開發知識
a)Java EE:
b)PHP:
c).NET:
d)ruby on rails: