1. 軟體工程寫作文檔
[編輯本段]基本信息 軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義: 軟體工程(1)、BarryBoehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
(2)、IEEE在軟體工程術語匯編中的定義:軟體工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟體的開發、運行和維護,即將工程化應用於軟體;2.在1中所述方法的研究 (3)、FritzBauer在NATO會議上給出的定義:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。 目前比較認可的一種定義認為:軟體工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
(4)、《計算機科學技術網路全書》中的定義:軟體工程是應用計算機科學、數學及管理科學等原理,開發軟體的工程。軟體工程借鑒傳統工程的原則、方法,以提高答行質量、降低成本。
其中,計算機科學、數學用於構建模型與演算法,工程科學用於制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。 [編輯本段]目標 軟體工程的目標是:在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用軟體工程性、可適應性、可移植性、可追蹤性和可互操作性並且滿足用戶需求的軟體產品。
追求這些目標有助於提高軟體產品的質量和開發效率,減少維護的困難。下面分別介紹這些概念。
(1)可修改性(modifiablity)。容許對系統進行修改而不增加原系統的復雜性。
它支持軟體的調試與維護,是一個難以達到的目標。 (2)有效性(efficiency)。
軟體系統能最有效地利用計算機的時間資源和空間資源。各種計算機軟體無不將系統的時/空開銷作為衡量軟體質量的一項重要技術指標。
很多場合,在追求時間有效性和空間有效性方面會發生矛盾,這時不得不犧牲時間效率換取空間有效性或犧牲空間效率換取時間有效性。時/空折衷是經常出現的。
有經驗的軟體設計人員會巧妙地利用折衷概念,在具體的物理環境中實現用戶的需求和自己的設計。 (3)可靠性(reliability)。
能防止因概念、設計和結構等搏舉罩方面的不完善造成的軟體系統失效,具有挽回因操作不當造成軟體系統失效的能力。對於實時嵌入式計算機系統,可靠性是一個非基鬧常重要的目標。
因為軟體要實時地控制一個物理過程,如宇宙飛船的導航、核電站的運行,等等。如果可靠性得不到保證,一旦出現問題可能是災難性的,後果將不堪設想。
因此在軟體開發、編碼和測試過程中,必須將可靠性放在重要地位。 (4)可理解性(understandability)。
系統具有清晰的結構,能直接反映問題的需求。可理解性有助於控制軟體系統的復雜性,並支持軟體的維護、移植或重用。
(5)可維護性(maintainability)。軟體產品交付用戶使用後,能夠對它進行修改,以便改正潛伏的錯誤,改進性能和其他屬性,使軟體產品適應環境的變化,等等。
由於軟體是邏輯產品,只要用戶需要,它可以無限期的使用下去,因此軟體維護是不可避免的。軟體維護費用在軟體開發費用中佔有很大的比重。
可維護性是軟體工程中一項十分重要的目標。軟體的可理解性和可修改性有利於軟體的可維護性。
(6)可重用性(reusebility)。概念或功能相對獨立的一個或一組相關模塊定義為一個軟部件。
軟部件可以在多種場合應用的程度稱為部件的可重用性。可重用的軟部件有的可以不加修改直接使用,有的需要修改後再用。
可重用軟部件應具有清晰的結構和註解,應具有正確的編碼和較低的時/空開銷。各種可重用軟部件還可以按照某種規則存放在軟部件庫中,供軟體工程師選用。
可重用性有助於提高軟體產品的質量和開發效率、有助於降低軟體的開發和維護費用。從更廣泛的意義上理解,軟體工程的可重用性還應該包括:應用項目的重用,規格說明(也稱為規約)的重用,設計的重用,概念和方法的重用,等等。
一般來說,重用的層次越高,帶來的效益也就越大。 (7)可適應性(adaptability)。
軟體在不同的系統約束條件下,使用戶需求得到滿足的難易程度。適應性強的軟體應採用廣為流行的程序設計語言編碼,在廣為流行的操作系統環境中運行,採用標準的術語和格式書寫文檔。
適應性強的軟體較容易推廣使用。 (8)可移植性(portability)。
軟體從一個計算機系統或環境搬到另一個計算機系統或環境的難易程度。為了獲得比較高的可移植性,在軟體設計過程中通常採用通用的程序設計語言和運行環境支撐。
對依賴於計算機系統的低級(物理)特徵部分,如編譯系統的目標代碼生成,應相對獨立、集中。這樣,與處理機無關的部分就可以移植到其他系統上使用。
可移植性支持軟體的課重用性和課適應性。 (9)可追蹤性(tracebility)。
根據軟體需求對軟體設計、程序進行正向追蹤,或根據程序、軟體設計對軟體需求進行逆向追蹤的能力。軟體可追蹤性依賴於軟。
軟體工程可以寫的題目多啊。開始也不怎麼懂,還是學姐給的文方網,寫的《基於Windows平台的HIPS系統設計與實現》,靠譜的說
研究生教育網路管理系統的設計與實現
WMS-2000A輪機模擬器數據通信系統設計與實現
洗衣機模擬運行控制系統的設計與實現
機車信號記錄器數據分析處理系統的設計與實現
分布式自動檢測系統RS485通信網路的設計與實現
計劃生育管理信息系統的設計與實現
醫院「一卡通」系統的設計與實現
列車三維駕駛模擬系統的設計與實現
一種圖書外采查重系統的設計與實現
基於C/S模式的網路文件管理系統的設計與實現
自動化倉庫管理系統的設計與實現
四川省衛生統計數據採集與決策支持系統設計與實現
ATM應用系統EMV遷移的設計與實現
基於B/S模式的葯品信息咨詢系統的設計與實現
基於LFAP的網路流量統計分析系統的設計與實現
傳真管理信息系統的設計與實現
工業機器人三維模擬系統的設計與實現
單位網路設備環境智能監控系統設計與實現
基於CC1020晶元無線傳輸系統的設計與實現
公安派出所綜合信息管理系統設計與實現
基於WEB的庫存管理系統設計與實現
基於工作流的AUTOBANK管理系統設計與實現
具有主動功能的連鎖經營企業配送中心管理信息系統的設計與實現
基於javaEE技術的在線考試系統的設計與實現
學生評教系統的設計與實現
微小型電動無人機動力系統試驗台的設計與實現
基於F1103 GPRS MODEM的家校通系統設計與實現
基於嵌入式Linux的遠程家庭醫療監護系統設計與實現
基於Windows操作系統的智能建築物綜合布線管理系統的設計與實現
基於.NET技術的網上購物管理系統的設計與實現
變電檢修管理信息系統設計與實現
天津地鐵1號線車站乘客向導系統的設計與實現
基於B/S結構的電路分析網上答疑係統的設計與實現
應用PDA組建無線IC卡表抄收系統的設計與實現
非計算機專業計算機課程考試系統設計與實現
基於GPRS網路的煤礦瓦斯監控系統的設計與實現
慣性組合導航系統介面子系統的設計與實現
人壽保險老業務綜合處理系統的設計與實現
FORTRAN語言題庫管理系統的設計與實現
樓宇信息系統的設計與實現
倒閘實訓系統無線遙控的設計與實現
C/S模式下的電子郵件系統設計與實現
基於LINQ三層架構倉庫管理系統的設計與實現
一種寬頻無線移動視頻調度系統的設計與實現
淺談遠程監控機房溫濕度報警系統的設計與實現
學術論文共詞分析系統的設計與實現
基於Web的SQLServer遠程備份管理系統的設計與實現
基於Spring框架的北京林業大學圖書館門戶系統設計與實現
基於XML的研究生網路選課系統設計與實現
最低0.27元開通文庫會員,查看完整內容> 原發布者:北大青鳥廣安門校區 軟體工程師應該具備的技能有哪些 軟體工程師應該具備的技能有哪些?我認為,軟體工程師用該具備的技能主要為以下幾點: 1.編程語言能力 作為一名專業的軟體工程師,應該能夠熟練掌握JAVA語言,並且能夠深入理解OOP、OOA、OOD等編程思想。
精通一門編程語言能為以後的軟體開發打下堅實的基礎。 2.編碼能力 這里說的編碼可不是照著書本敲代碼,而是能夠獨立的運用代碼,編寫一個程序出來。
有很多軟體工程師,他們都是隨意堆砌網上搜來的代碼,根本不管可讀性和可維護性,只要能實現功能就行了,缺乏最基本的職責素養。 我認為,對於軟體工程師或程序員來說,代碼就像自己的孩子一樣,一定要付出感情,這樣才能編寫出好的程序。
3.學習能力 IT技術可謂是更新換代最快的了,從市面上的電腦和手機就可以看出來。所以,只依靠自己之前學到的知識,很快就會被這個時代所淘汰,軟體工程師應具備的技能里很重要的一點就是學習能力。
因為只有具備了學習能力,才能在離開學校之後仍然能夠獨立地學習最新的技術,同時能夠自主的發現現在有什麼新技術,市場上流行的技術元素與市場需求的變化。 4.設計能力 一個優秀的軟體工程師不僅僅具備扎實的專業知識與技能,而且還要具備一定的設計能力。
因為只有這樣,才能使一個軟體或者應用更加完美,更加容易受到人們的歡迎,從而獲得更廣闊的市場。 5.團隊協作能力 軟體開發並不是孤軍奮戰,很多時候一個軟體需要幾個人。
當今中國軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義: 軟體工程(1)、BarryBoehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
(2)、IEEE在軟體工程術語匯編中的定義:軟體工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟體的開發、運行和維護,即將工程化應用於軟體;2.在1中所述方法的研究 (3)、FritzBauer在NATO會議上給出的定義:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。 目前比較認可的一種定義認為:軟體工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
(4)、《計算機科學技術網路全書》中的定義:軟體工程是應用計算機科學、數學及管理科學等原理,開發軟體的工程。軟體工程借鑒傳統工程的原則、方法,以提高質量、降低成本。
其中,計算機科學、數學用於構建模型與演算法,工程科學用於制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。[編輯本段]目標 軟體工程的目標是:在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用軟體工程性、可適應性、可移植性、可追蹤性和可互操作性並且滿足用戶需求的軟體產品。
追求這些目標有助於提高軟體產品的質量和開發效率,減少維護的困難。下面分別介紹這些概念。
(1)可修改性(modifiablity)。容許對系統進行修改而不增加原系統的復雜性。
它支持軟體的調試與維護,是一個難以達到的目標。 (2)有效性(efficiency)。
軟體系統能最有效地利用計算機的時間資源和空間資源。各種計算機軟體無不將系統的時/空開銷作為衡量軟體質量的一項重要技術指標。
很多場合,在追求時間有效性和空間有效性方面會發生矛盾,這時不得不犧牲時間效率換取空間有效性或犧牲空間效率換取時間有效性。時/空折衷是經常出現的。
有經驗的軟體設計人員會巧妙地利用折衷概念,在具體的物理環境中實現用戶的需求和自己的設計。 (3)可靠性(reliability)。
能防止因概念、設計和結構等方面的不完善造成的軟體系統失效,具有挽回因操作不當造成軟體系統失效的能力。對於實時嵌入式計算機系統,可靠性是一個非常重要的目標。
因為軟體要實時地控制一個物理過程,如宇宙飛船的導航、核電站的運行,等等。如果可靠性得不到保證,一旦出現問題可能是災難性的,後果將不堪設想。
因此在軟體開發、編碼和測試過程中,必須將可靠性放在重要地位。 (4)可理解性(understandability)。
系統具有清晰的結構,能直接反映問題的需求。可理解性有助於控制軟體系統的復雜性,並支持軟體的維護、移植或重用。
(5)可維護性(maintainability)。軟體產品交付用戶使用後,能夠對它進行修改,以便改正潛伏的錯誤,改進性能和其他屬性,使軟體產品適應環境的變化,等等。
由於軟體是邏輯產品,只要用戶需要,它可以無限期的使用下去,因此軟體維護是不可避免的。軟體維護費用在軟體開發費用中佔有很大的比重。
可維護性是軟體工程中一項十分重要的目標。軟體的可理解性和可修改性有利於軟體的可維護性。
(6)可重用性(reusebility)。概念或功能相對獨立的一個或一組相關模塊定義為一個軟部件。
軟部件可以在多種場合應用的程度稱為部件的可重用性。可重用的軟部件有的可以不加修改直接使用,有的需要修改後再用。
可重用軟部件應具有清晰的結構和註解,應具有正確的編碼和較低的時/空開銷。各種可重用軟部件還可以按照某種規則存放在軟部件庫中,供軟體工程師選用。
可重用性有助於提高軟體產品的質量和開發效率、有助於降低軟體的開發和維護費用。從更廣泛的意義上理解,軟體工程的可重用性還應該包括:應用項目的重用,規格說明(也稱為規約)的重用,設計的重用,概念和方法的重用,等等。
一般來說,重用的層次越高,帶來的效益也就越大。 (7)可適應性(adaptability)。
軟體在不同的系統約束條件下,使用戶需求得到滿足的難易程度。適應性強的軟體應採用廣為流行的程序設計語言編碼,在廣為流行的操作系統環境中運行,採用標準的術語和格式書寫文檔。
適應性強的軟體較容易推廣使用。 (8)可移植性(portability)。
軟體從一個計算機系統或環境搬到另一個計算機系統或環境的難易程度。為了獲得比較高的可移植性,在軟體設計過程中通常採用通用的程序設計語言和運行環境支撐。
對依賴於計算機系統的低級(物理)特徵部分,如編譯系統的目標代碼生成,應相對獨立、集中。這樣,與處理機無關的部分就可以移植到其他系統上使用。
可移植性支持軟體的課重用性和課適應性。 (9)可追蹤性(tracebility)。
根據軟體需求對軟體設計、程序進行正向追蹤,或根據程序、軟體設計對軟體需求進行逆向追蹤的能力。軟體可追蹤性依賴於軟體開發各個階段文檔和程序的完整性、一致性和可理解性。
降低系統的復雜性會提。
01立項調查報告
02立項建議書
03立項評審報告
04項目設計開發任務書
05項目計劃
06質量保證計劃
07配置管理計劃
08需求分析說明書
09概要設計說明書
10詳細設計說明書
11資料庫設計說明書
12資料庫表詳細設計
13單元測試計劃
14測試腳本
15單元測試報告
16系統測試計劃
17驗收申請書
18驗收評審報告
19客戶驗收報告
21審核反饋表
22軟體評審報告
23變更需求報告
24設計變更報告
26項目管理報告
27項目總結報告
一共這么多,三大報告是
需求分析說明書
概要設計說明書
詳細設計說明書
1、論文題目:要求准確、簡練、醒目、新穎。
2、目錄:目錄是論文中主要段落的簡表。(短篇論文不必列目錄) 3、提要:是文章主要內容的摘錄,要求短、精、完整。
字數少可幾十字,多不超過三百字為宜。 4、關鍵詞或主題詞:關鍵詞是從論文的題名、提要和正文中選取出來的,是對表述論文的中心內容有實質意義的詞彙。
關鍵詞是用作機系統標引論文內容特徵的詞語,便於信息系統匯集,以供讀者檢索。 每篇論文一般選取3-8個詞彙作為關鍵詞,另起一行,排在「提要」的左下方。
主題詞是經過規范化的詞,在確定主題詞時,要對論文進行主題,依照標引和組配規則轉換成主題詞表中的規范詞語。 5、論文正文: (1)引言:引言又稱前言、序言和導言,用在論文的開頭。
引言一般要概括地寫出作者意圖,說明選題的目的和意義, 並指出論文寫作的范圍。引言要短小精悍、緊扣主題。
〈2)論文正文:正文是論文的主體,正文應包括論點、論據、論證過程和結論。主體部分包括以下內容: a.提出-論點; b.分析問題-論據和論證; c.解決問題-論證與步驟; d.結論。
6、一篇論文的參考文獻是將論文在和寫作中可參考或引證的主要文獻資料,列於論文的末尾。參考文獻應另起一頁,標注方式按《GB7714-87文後參考文獻著錄規則》進行。
中文:標題--作者--出版物信息(版地、版者、版期):作者--標題--出版物信息所列參考文獻的要求是: (1)所列參考文獻應是正式出版物,以便讀者考證。 (2)所列舉的參考文獻要標明序號、著作或文章的標題、作者、出版物信息。
需要掌握以下的知識 : (一).NET方面的開發⒈熟悉開發體系,熟悉C# ASP .NET;⒉熟悉SQLServer,Oracle資料庫開發;⒊具有企業管理系統項目經驗;4.了解企業ERP及財務管理軟體(用友,金蝶)者優先;5.善於溝通,能獨立撰寫方案。
為人誠實,善於學習,做事認真負責,積極主動,具有敬業精神,有團隊精神。(二)JAVA應用程序開發1.熟練使用Struts2+Spring+Hibernate2.掌握Jquery3.掌握Java4.熟悉Oracle5.掌握xml/webservice6.掌握OOD、OOP7.基本文檔寫作能力(三)web、資料庫方面的開發⒈練掌握ASP,NET;等編程語言,熟悉.Net開發環境,理解.Net Framework,理解並能熟練使用WebService、O/R mapping、Remoting、多線程等技術;2.熱衷於互聯網WEB開發,熱衷於鑽研最新的前沿技術,精通XML,Javascript,CSS,AJAX等WEB前端技術;3.熟練的技術文檔編寫能力,熟練使用Rose,Power Design,Visio等建模和設計軟體,有一定的架構設計能力;4.精通SQL server資料庫技術,了解資料庫性能調優者優先.(四)php項目開發⒈使用PHP語言開發互聯網應用程序;⒉網站產品和網站功能模塊的開發與維護;⒊與頁面設計師協調溝通,編寫部分Javascript和HTML;⒋參與底層MVC框架的編寫與維護。
軟體工程師一般指從事軟體開發職業的人。軟體工程師是一個認證考試,具體地說是從事軟體職業的人員的一種職業能力的認證,通過它說明具備了工程師的資格。
軟體工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、資料庫技術(SQL/ORACLE/DB2等)等,還有諸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技術。此外,關於網路工程和軟體測試的其他技術也要有所涉獵。
對於軟體工程師,不太重視學歷,但並不是對學歷沒有要求,重點關注項目的經驗和學習知識的能力,能否利用軟體工程專業知識來解決問題,根據崗位不同,對軟體工程師的要求也有所不同。具體能力要根據崗位和自己的興趣愛好選定自己的職業規劃方向,一方面要詳細了解軟體工程師的要求,可以關注企業的招聘信息;一方面自己要貯備通用的知識技能,廣泛閱讀相關的計算機材料對自己以後的發展大有幫助。
可以確定的是軟體工程師的前途在未來的發展依然是不斷升溫的職業,比較需要有技術和良好前景的專業之一。工作內容:1、指導程序員的工作;2、參與軟體工程系統的設計、開發、測試等過程;3 、協助工程管理人保證項目的質量;4 、負責工程中主要功能的代碼實現;5 、解決工程中的關鍵問題和技術難題;6 、協調各個程序員的工作,並能與其它軟體工程師協作工作;7、還要編寫各種各樣的軟體說明書,如:需求說明書,概要說明書等考試科目。
工程師是中級職稱,考試的題目包括了計算機體系結構、軟體工程、資料庫、數據結構、編譯原理等計算機學科的基礎課程。
2. 與android應用程序相關的文件目錄都有哪些
在搭建Android開發環境及簡單地建立一個HelloWorld項目後,本篇將通過HelloWorld項目來介紹Android項目的目錄結構。本文的主要主題如下:
1、HelloWorld項目的目錄結構
1.1、src文件夾
1.2、gen文件夾
1.3、Android 2.1文件夾
1.4、assets
1.5、res文件夾
1.6、AndroidManifest.xml
1.7、default.properties
圖1、HelloWorld項目目錄結構
下面將分節介紹上面的各級目錄結構。
1.1、src文件夾
顧名思義(src, source code)該文件夾是放項目的源代碼的。打開HelloWorld.java文件會看到如下代碼:
package helloworld.test; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
可以知道:我們新建一個簡單的HelloWorld項目,系統為我們生成了一個HelloWorld.java文 件。他導入了兩個類android.app.Activity和android.os.Bundle,HelloWorld類繼承自Activity且重 寫了onCreate方法。
以下說明針對沒有學過Java或者Java基礎薄弱的人
@Override
在重寫父類的onCreate時,在方法前面加上@Override 系統可以幫你檢查方法的正確性。
例如,public void onCreate(Bundle savedInstanceState){…….}這種寫法是正確的,
如果你寫成public void oncreate(Bundle savedInstanceState){…….}這樣編譯器回報如下錯誤——
The method oncreate(Bundle) of type HelloWorld must override or implement a supertype method,
以確保你正確重寫onCreate方法。(因為oncreate應該為onCreate)
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你新定義了一個方法oncreate。
android.app.Activity類:因為幾乎所有的活動 (activities)都是與用戶交互的,所以Activity類關注創建窗口,你可以用方法setContentView(View)將自己的UI放 到裡面。然而活動通常以全屏的方式展示給用戶,也可以以浮動窗口或嵌入在另外一個活動中。有兩個方法是幾乎所有的Activity子類都實現的:
onCreate(Bundle): 初始化你的活動(Activity),比如完成一些圖形的繪制。最重要的是,在這個方法里你通常將用布局資源(layout resource)調用setContentView(int)方法定義你的UI,和用findViewById(int)在你的UI中檢索你需要編程地 交互的小部件(widgets)。setContentView指定由哪個文件指定布局(main.xml),可以將這個界面顯示出來,然後我們進行相關 操作,我們的操作會被包裝成為一個意圖,然後這個意圖對應有相關的activity進行處理。
onPause():處理當離開你的活動時要做的事情。最重要的是,用戶做的所有改變應該在這里提交(通常ContentProvider保存數據)。
更多的關於Activity類的詳細信息此系列以後的文章將做介紹,如果你想了解更多請參閱相關文檔。
android.os.Bundle 類:從字元串值映射各種可打包的(Parcelable)類型(Bundle單詞就是捆綁的意思,所有這個類很好理解和記憶)。如該類提供了公有方法—— public boolean containKey(String key),如果給定的key包含在Bundle的映射中返回true,否則返回false。該類實現了Parceable和Cloneable介面,所以 它具有這兩者的特性。
1.2、gen文件夾
該 文件夾下面有個R.java文件,R.java是在建立項目時自動生成的,這個文件是只讀模式的,不能更改。R.java文件中定義了一個類——R,R類 中包含很多靜態類,且靜態類的名字都與res中的一個名字對應,即R類定義該項目所有資源的索引。看我們的HelloWorld項目是不是如此,如下圖:
圖2、R.java對應res
通過R.java我們可以很快地查找我們需要的資源,另外編繹器也會檢查R.java列表中的資源是否被使用到,沒有被使用到的資源不會編繹進軟體中,這樣可以減少應用在手機佔用的空間。
1.3、Android 2.1文件夾
該 文件夾下包含android.jar文件,這是一個Java 歸檔文件,其中包含構建應用程序所需的所有的Android SDK 庫(如Views、Controls)和APIs。通過android.jar將自己的應用程序綁定到Android SDK和Android Emulator,這允許你使用所有Android的庫和包,且使你的應用程序在適當的環境中調試。例如上面的HelloWorld.java源文件中 的:
import android.app.Activity; import android.os.Bundle;
這里兩行代碼就是從android.jar導入包。
1.4、assets
包含應用系統需要使用到的諸如mp3、視頻類的文件。
1.5、res文件夾
資源目錄,包含你項目中的資源文件並將編譯進應用程序。向此目錄添加資源時,會被R.java自動記錄。新建一個項目,res目錄下會有三個子目錄:drawabel、layout、values。
drawabel-?dpi:包含一些你的應用程序可以用的圖標文件(*.png、*.jpg)
layout:界面布局文件(main.xml)與WEB應用中的HTML類同,沒修改過的main.xml文件如下(HelloWorld的就沒有修改過):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
values:軟體上所需要顯示的各種文字。可以存放多個*.xml文件,還可以存放不同類型的數據。比如arrays.xml、colors.xml、dimens.xml、styles.xml
1.6、AndroidManifest.xml
項目的總配置文件,記錄應用中所使用的各種組件。這個文件列出了應用程序所提供的功能,在這個文件中,你可以指定應用程序使用到的服務(如電話服務、互聯網 服務、簡訊服務、GPS服務等等)。另外當你新添加一個Activity的時候,也需要在這個文件中進行相應配置,只有配置好後,才能調用此 Activity。AndroidManifest.xml將包含如下設置:application permissions、Activities、intent filters等。
HelloWorld項目的AndroidManifest.xml如下所示:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="helloworld.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
關於AndroidManifest.xml現在就講這么多,此系列後面的文章將單獨詳細介紹。
1.7、 default.properties
記錄項目中所需要的環境信息,比如Android的版本等。
HelloWorld的default.properties文件代碼如下所示,代碼中的注釋已經把default.properties解釋得很清楚了:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
target=android-7
3. 不同的操作系統如何編譯一段軟體的代碼
首先,准備好命令行和編輯器。針對主流操作系統分別做簡單的解釋:Linux:已經具備了命令行和一個叫GCC 的編輯器。在命令行中輸入gcc ,如果「command not found」,那麼請安裝GCC。Mac OS X:命令行是Terminal,位於Applications/Utilities。你需要下載XCode ,它包含Apple的編輯器。Windows:微軟在免費下載的Visual Studio Express中提供了編輯器,但是Cygwin 界面更友好。安裝中要注意的是:要選擇「Devel」部分中所有的安裝包。下載:基本上所有的源數據包都有.tgz或者.tar.gz的後綴,有文件名和版本號,比如example-3.2.8.tar.gz。建立一個名為「source」或者「build」的目錄,下載並放在該目錄中。解壓縮:從命令行進入工作目錄(用cd命令):cd source 最快的方法是:tar -xzvf example-3.2.8.tar.gz這會將所有的源代碼解壓到一個新的子目錄中,而且文件名跟應用是一樣的。進入目錄只需要敲:cd example-3.2.8讀文檔:在代碼的文件包中會有像README 和INSTALL之類的文件,一定要讀。你也可以使用less 命令在命令行中讀取:less INSTALL 或者直接用合適的格式打開它們,它們會告訴你要安裝哪些包、安裝指南、注意問題等。Building:雖然各有不同,但大抵方法如下:輸入:./configure 運行配置工具會告訴你缺少哪些軟體和重要的文件的位置。有時候你需要自己指明特定文件在你計算機上的位置,比如:./configure --ssl-dir=/usr/local/include Configuration 過程要用幾分鍾,當它完畢的時候,你就可以編譯了。如果出現錯誤,參考下面的Troubleshooting。編譯請輸入:make一切順利就開始編譯了。編譯會佔用一段時間而且當運行時會佔用你電腦的所有進程。不要擔心,當編譯結束的時候,如果你仍然沒有看到已錯誤,那你已經搞定了。剩下要做的只是將不同的文件放到文件系統中:make installTroubleshooting: 如果以上的步驟有遇到錯誤,有方法讓你知道問題所在。確認你是否嚴格地按要求執行以上步驟。【
4. 如何編譯安裝源碼包軟體
怎樣安裝以源碼包打包的軟體;
1、源碼包的打包格式;
源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz
至於file.src.rpm 的用法,請參見:《file.src.rpm 使用方法的簡介》
2、如何編譯安裝源碼包;(大多數)
1)解開軟體包查看幫助文檔;
我們解開一個包後,進入解壓包,一般都能發現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個差不多;
比如我們下載一個比較新的fcitx 的軟體包,比如是 fcitx-3.2-050827.tar.bz2
我們在解開這個軟體包會會發現如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools
所以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;裡面都告訴我們如何安裝;
有時安裝文檔也會在開發者的主頁上有詳細的說明,及常見問題的處理等;比如 LumaQQ
2)編譯安裝軟體的條件;
首 先我們在Linux系統中至少得把開發工具安裝上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等開發工具或基礎包;還要安裝一些相應的開發包,一般是文件名包括dev的,比如kernel-devel;還有一些開發庫,比如以lib開頭的;如果您 在編譯軟體時,有時提示缺少什麼東西之類的,大多少的是這些開發工具和開發庫等;從光碟中找出安裝就是了;有時光碟沒有提供,請用google搜索相應的 軟體包,有時可能也會用到源碼包編譯安裝所依賴的包;
有時本來系統中已經安裝了所依賴的包,但系統提示找不到應該怎麼辦?這時需要我們設置一下PKG_CONFIG_PATH的環境變數就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
或
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來運行編譯的./configure ;make ;make install ,嘗試著來吧;
以java開發的工具開發的程序,要用到 jre或者jdk ;jdk已經包括jre了,所以如果我們只是要求有一個java程序運行的環境,只需要安裝jre就行了;安裝好jre,配置一下java的環境變數就可以用了。如果是圖形界面的程序,點點滑鼠就OK了;
用perl 開發的程序,是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;
3)編譯安裝軟體的方法;
大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install 來安裝的;有的軟體是直接make;make install ;
我們可以通過./configure --help 來查看配置軟體的功能;大多軟體是提供./configure 配置軟體的功能的;少數的也沒有,如果沒有的就不用./configure ;直接make;make install 就行了;
./configure 比較重要的一個參數是 --prefix ,用--prefix 參數,我們可以指定軟體安裝目錄;當我們不需要這個軟體時,直接刪除軟體的目錄就行了;
比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;
所以我們舉這個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整的安裝方法應該是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
調用fcitx ,應該是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要讓fcitx 只要執行fcitx ,就能調用,請配置環境變數,或者在/usr/bin 中做一個fcitx 的鏈接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情況下都有說,但大多軟體沒有提供源碼包的卸載方法;我們可以找到軟體的安裝點刪除。主要看你把它安裝在哪了。
設置環境變數PATH,請參見:《在Fedora Core 中,有些常用命令怎麼沒有?解決辦法設置PATH》
所以您的PATH可以設置成這樣的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
當然這只是舉個例子,fcitx 可以進入桌面自動運行的,請參看 http://www.fcitx.org 官方站上的安裝說明;舉個例子只是讓大家好理解一點;
再舉一個例子,比如我想安裝mlterm ;並指定安裝目錄為/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install
把源碼包安裝的軟體,都指定安裝在 /opt目錄中,這樣不就知道了軟體安裝在哪裡了;也方便卸載;
5. 如何把應用程序app編譯進android系統
把安卓應用軟體安裝到安卓系統文件,即把安卓應用軟體放到系統根目錄system/app下 操作方法 :
准備工作:
一、開啟ROOT許可權。
ROOT方法:下載一鍵ROOT之類的軟體,根據操作步驟進行,就可以獲取ROOT許可權了。
二、安裝RE文件管理器。
清理系統自帶應用
(一)、用RE打開系統根目錄下的system/app,進行精簡系統自帶應用,注意,要對照一些總結可刪減程序的文件,以免刪錯了導致系統故障。
(二)、根目錄:preload目錄下,可能會有系統的預裝應用,不用的也可以全部刪掉。
移動APK到system/app 目錄:
一、移動apk:用RE管理器把要安裝的apk軟體移動到/system/app 目錄下。
在操作前,將/system/app 目錄掛載為可讀寫;
注意軟體名不要有中文 、空格及其他特殊字元等;
如果無法移動,顯示空間不足時,可以先移動到data/app/下,再移動到/system/app;
二、修改apk許可權: 對移動進來的apk軟體更改許可權,即改為:用戶許可權為 讀+寫,分組許可權為 讀,其他許可權為 讀。
三、提取 .so文件:用RE提取apk軟體中/lib/目錄下的所有 .so文件,將其移動到/system/lib中。
點擊apk軟體,用RE查看文件內容,即可找到 ,so文件。
四、修改 .so文件許可權:方法同上。
五、重啟手機。在此過程中,可能載入的時間稍長點,請耐心等待即可。