第一篇:Android平臺(tái)個(gè)人銀行賬目軟件-開(kāi)題
需要詳細(xì)請(qǐng)聯(lián)系上傳者
一、綜述本課題國(guó)內(nèi)外研究動(dòng)態(tài),說(shuō)明選題的依據(jù)和意義
1.1國(guó)外手機(jī)銀行發(fā)展現(xiàn)狀
國(guó)外手機(jī)銀行起步是比較早的,在96年捷克斯洛伐克首先推出了手機(jī)銀行業(yè)務(wù).現(xiàn)在手機(jī)銀行在歐美、日韓發(fā)展比較成熟。從模式上比較,日本是以移動(dòng)運(yùn)營(yíng)商為主導(dǎo)。而韓國(guó)則是以銀行為主導(dǎo),歐美的那些移動(dòng)運(yùn)營(yíng)商在移動(dòng)銀行業(yè)務(wù)其實(shí)不多。韓國(guó)的手機(jī)銀行業(yè)務(wù)現(xiàn)階段已成熟。早在2002年,韓國(guó)已經(jīng)有18家銀行提供手機(jī)銀行服務(wù),全年交易超過(guò)109萬(wàn)次,僅在2002年9月就有9萬(wàn)次交易發(fā)生。目前韓困所有的零售銀行都能提供手機(jī)銀行業(yè)務(wù),至2009年,韓國(guó)手機(jī)銀行用戶(hù)規(guī)模已達(dá)到1115.5萬(wàn)人。日本最先建立了手機(jī)錢(qián)包的運(yùn)營(yíng)模式,普及率和公眾接受度比較高?,F(xiàn)在大約有5500萬(wàn)日本手機(jī)用戶(hù)開(kāi)通了電子支付功能,這個(gè)數(shù)字幾乎占到了日本總?cè)丝诘囊话?。手機(jī)銀行服務(wù)一經(jīng)推出就在銀行信息電子化水平最高的美國(guó)大行其道。2009年美圍手機(jī)銀行用戶(hù)達(dá)到2540萬(wàn)人.較2008年增長(zhǎng)6%,占當(dāng)年手機(jī)用戶(hù)的10.8%。艾瑞咨詢(xún)的統(tǒng)計(jì)數(shù)據(jù)發(fā)現(xiàn),2010年美國(guó)手機(jī)銀行用戶(hù)占其手機(jī)用戶(hù)的比例將達(dá)到19.6%,到2013年增長(zhǎng)至44.4%。
1.2我國(guó)手機(jī)銀行發(fā)展現(xiàn)狀
手機(jī)具備用戶(hù)精準(zhǔn)鎖定、方便攜帶以及隨時(shí)在線(xiàn)等優(yōu)勢(shì),銀行可以便捷地和客戶(hù)保持溝通,比如賬戶(hù)金額變動(dòng)情況、附近的ATM位最、利率變動(dòng)、金融資訊及投資理財(cái)信息等。根據(jù)《中國(guó)電子商務(wù)研究中心發(fā)布的中國(guó)電子商務(wù)市場(chǎng)數(shù)據(jù)監(jiān)測(cè)報(bào)告》顯示,截至到2010年上半年,中國(guó)移動(dòng)電子商務(wù)實(shí)物交易規(guī)模達(dá)到13億元,用戶(hù)規(guī)模已達(dá)到5531.5萬(wàn)。我國(guó)手機(jī)銀行經(jīng)過(guò)短短10年的發(fā)展,初步具備了一定的規(guī)模和效應(yīng),但是在發(fā)展過(guò)程中也存在部分的不足。手機(jī)銀行快速發(fā)展,但是規(guī)模和占比與發(fā)達(dá)國(guó)家存在較大差距。手機(jī)銀行短短十年來(lái)已增長(zhǎng)了2000多萬(wàn)戶(hù),呈高速發(fā)展態(tài)勢(shì)。但是相對(duì)于8億移動(dòng)電話(huà)用戶(hù),手機(jī)銀行用戶(hù)僅有2000萬(wàn);而人口不到我國(guó)1/10的口本.2008年用戶(hù)就超過(guò)4900萬(wàn),兩者有較大差距。2.手機(jī)銀行業(yè)務(wù)覆蓋范廣,能為用戶(hù)提供全方位的在線(xiàn)服務(wù),實(shí)際使用率低。根據(jù)http://xmqbysj.com網(wǎng)站統(tǒng)計(jì),這個(gè)數(shù)量還在不斷增加。
在手機(jī)銀行的操作過(guò)程中,用戶(hù)通過(guò)SIM卡上的菜單對(duì)銀行發(fā)出指令后,SIM卡根據(jù)用戶(hù)指令生成規(guī)定格式的短信并加密,然后指示手機(jī)向GSM網(wǎng)絡(luò)發(fā)出短信,GSM短信系統(tǒng)收到短信后,按相應(yīng)的應(yīng)用或地址傳給相應(yīng)的銀行系統(tǒng),銀行對(duì)短信進(jìn)行預(yù)處理,再把指令轉(zhuǎn)換成主機(jī)系統(tǒng)格式,銀行主機(jī)處理用戶(hù)的請(qǐng)求,并把結(jié)果返回給銀行接口系統(tǒng),接口系統(tǒng)將處理的結(jié)果轉(zhuǎn)換成短信格式,短信中心將短信發(fā)給用
戶(hù)。
隨著互聯(lián)網(wǎng)絡(luò)與移動(dòng)通信技術(shù)發(fā)展的不斷推進(jìn),傳統(tǒng)的銀行服務(wù)方式已被賦予了新的內(nèi)涵,手機(jī)銀行業(yè)務(wù)正是順應(yīng)這種歷史潮流而產(chǎn)生的。手機(jī)銀行又被稱(chēng)為移動(dòng)銀行.是銀行和移動(dòng)運(yùn)營(yíng)商共同推出的一個(gè)新的服務(wù)項(xiàng)目,它將無(wú)線(xiàn)通信技術(shù)的3A(任何時(shí)間、任何地點(diǎn)、任何方式)優(yōu)勢(shì)與現(xiàn)有金融業(yè)務(wù)相結(jié)合,為客戶(hù)提供更方便、更快捷、更隨心所欲的服務(wù)。
目前手機(jī)銀行有多種實(shí)現(xiàn)方案,如SMS,STK卡,USSD.WAP等,與這幾種實(shí)現(xiàn)方式相比,基于J2ME技術(shù)的手機(jī)銀行具有用戶(hù)界面友好、輸入輸出方便以及安全性高的優(yōu)點(diǎn),同時(shí)手機(jī)終端的功能類(lèi)似可移動(dòng)仁網(wǎng)的電腦.充分利用了用戶(hù)固定的互聯(lián)網(wǎng)使用習(xí)慣,提供給用戶(hù)高性能、多方位的移動(dòng)互聯(lián)網(wǎng)使用體驗(yàn)?;诖耍鞠到y(tǒng)客戶(hù)端采用J2ME技術(shù)來(lái)實(shí)現(xiàn),考慮到系統(tǒng)的兼容性以及JAVA語(yǔ)言的天然優(yōu)勢(shì),服務(wù)器端采用Servlet組件技術(shù)。
1.3選題依據(jù)和意義
經(jīng)過(guò)多年的發(fā)展,第三代數(shù)字通信(3G)技術(shù)獲得了廣泛的接受,它為移動(dòng)終端用戶(hù)帶來(lái)了更快的數(shù)據(jù)傳輸速率。隨著3G網(wǎng)絡(luò)的使用,移動(dòng)終端不再僅是通訊網(wǎng)絡(luò)的終端,還將成為互聯(lián)網(wǎng)的終端。因此,移動(dòng)終端的應(yīng)用軟件和需要的服務(wù)將會(huì)有很大的發(fā)展空間。Google與包括中國(guó)移動(dòng)、摩托羅拉在內(nèi)的三十多家技術(shù)和無(wú)線(xiàn)應(yīng)用的領(lǐng)軍企業(yè)組成的開(kāi)發(fā)聯(lián)盟為此于2007年11月推出了一個(gè)專(zhuān)為移動(dòng)設(shè)備設(shè)計(jì)的軟件平臺(tái)——Android。
Android是一套真正意義上的開(kāi)放性移動(dòng)設(shè)備綜合平臺(tái),它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺(tái)應(yīng)用。Android的Java程序運(yùn)行環(huán)境包含一組Java核心函數(shù)庫(kù)及Dalvik虛擬機(jī),它們有效地優(yōu)化了Java程序的運(yùn)行過(guò)程。Android系統(tǒng)平臺(tái)基于優(yōu)化了的Linux內(nèi)核,它提供諸如內(nèi)存管理、進(jìn)程管理、設(shè)備驅(qū)動(dòng)等服務(wù),同時(shí)也是手機(jī)軟硬件的連接層。
Android最大特點(diǎn)在于它是一個(gè)開(kāi)放的體系架構(gòu),具有非常好的開(kāi)發(fā)和調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶(hù)體驗(yàn),Android里面具有非常豐富的圖形系統(tǒng),對(duì)多媒體的支持功能和非常強(qiáng)大的瀏覽器。
Android平臺(tái)的開(kāi)放性等特點(diǎn)既能促進(jìn)技術(shù)(包括平臺(tái)自身)的創(chuàng)新,又有助于降低開(kāi)發(fā)成本,還可以使運(yùn)營(yíng)商能非常方便地制定特色化的產(chǎn)品,因此,它具有很大的市場(chǎng)發(fā)展?jié)摿Α?/p>
二、研究的基本內(nèi)容,擬解決的主要問(wèn)題:
研究的基本內(nèi)容
Android
以Java語(yǔ)言為基礎(chǔ),結(jié)合Android移動(dòng)開(kāi)發(fā)平臺(tái),并利用Android提供的SDK,實(shí)現(xiàn)在Android平臺(tái)上運(yùn)行的手機(jī)銀行賬目管理,方便廣大手機(jī)用戶(hù)更加便捷地日常收入、支付、統(tǒng)計(jì)、查詢(xún)。該手賬目管理系統(tǒng)面向所有的Android手機(jī)用戶(hù),為他們提供更實(shí)際便捷的手機(jī)服務(wù)。該賬目的數(shù)據(jù)管理功能是該軟件的一個(gè)特色,可以實(shí)現(xiàn)賬目數(shù)據(jù)的查詢(xún)操作。我相信這款軟件,可以好的滿(mǎn)足Android手機(jī)用戶(hù)對(duì)個(gè)人銀行賬目管理的需求。
在對(duì)Android手機(jī)賬目管理軟件進(jìn)行詳細(xì)的系統(tǒng)設(shè)計(jì)與討論時(shí),對(duì)功能進(jìn)行詳細(xì)的劃分并對(duì)其功能做了詳細(xì)的介紹,列出了一些主要代碼和流程圖。此部分為論文的核心。
Android平臺(tái)個(gè)人銀行賬目軟件是基于Android手機(jī)平臺(tái),運(yùn)用Java語(yǔ)言,將PC上的應(yīng)用在手機(jī)上來(lái)實(shí)現(xiàn),開(kāi)發(fā)出針對(duì)使用Android平臺(tái)的理財(cái)系統(tǒng)。
在當(dāng)今的生活中,理財(cái)已成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧1拒浖拈_(kāi)發(fā)就是為了方便手機(jī)用戶(hù)能夠更加簡(jiǎn)單的對(duì)自己的銀行賬目進(jìn)行管理,能夠?qū)ψ约旱慕?jīng)濟(jì)有一個(gè)更好的把握。
Android 作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)“隨時(shí)隨地為每個(gè)人提供信息”這一企業(yè)目標(biāo)的實(shí)現(xiàn)。我們發(fā)現(xiàn),全球?yàn)閿?shù)眾多的移動(dòng)電話(huà)用戶(hù)從未使用過(guò)任何基于 Android 的電話(huà)。谷歌的目標(biāo)是讓?zhuān)ㄒ苿?dòng)通訊)不依賴(lài)于設(shè)備甚至平臺(tái)。出于這個(gè)目的,Android 將補(bǔ)充,而不會(huì)替代谷歌長(zhǎng)期以來(lái)奉行的移動(dòng)發(fā)展戰(zhàn)略:通過(guò)與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開(kāi)發(fā)既有用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品。
SQLite數(shù)據(jù)庫(kù)
SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月.至今已經(jīng)有10個(gè)年頭,SQLite也迎來(lái)了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。
XML技術(shù)
XML是一種可擴(kuò)展標(biāo)記語(yǔ)言,其設(shè)計(jì)的宗旨是傳輸和存儲(chǔ)數(shù)據(jù)[10],其焦點(diǎn)是數(shù)據(jù)的內(nèi)容,本系統(tǒng)使用XML文件主要作為數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)和導(dǎo)航等等。
系統(tǒng)功能需求
本軟件主要為用戶(hù)提供一個(gè)數(shù)據(jù)插入、數(shù)據(jù)查詢(xún)、數(shù)據(jù)刪除的功能,用戶(hù)可以通過(guò)android手機(jī)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的操作,主要功能包括:
l
別。日常收入,用戶(hù)可以按照日常收入日期、金額、類(lèi)別、備注進(jìn)行數(shù)據(jù)的增加。4 日常支出,用戶(hù)可以按照日常收入日期、金額、類(lèi)別、備注進(jìn)行數(shù)據(jù)的增加。5 收入支出統(tǒng)計(jì),按照一定的數(shù)據(jù)查詢(xún)條件,用戶(hù)可以對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。計(jì)算器,用戶(hù)可以對(duì)活期存款、定期存款進(jìn)行相應(yīng)的計(jì)算求其增長(zhǎng)值。收入查詢(xún),用戶(hù)可以輸入相應(yīng)的查詢(xún)條件進(jìn)行數(shù)據(jù)查詢(xún),同樣可以進(jìn)行數(shù)據(jù)查詢(xún),并且可以刪除相應(yīng)的數(shù)據(jù)。支出查詢(xún),支出查詢(xún)類(lèi)似類(lèi)似于收入查詢(xún),同樣可以進(jìn)行查詢(xún)、刪除操作。9 個(gè)人信息,用戶(hù)可以增加自己的個(gè)人信息,同時(shí)可以修改登錄密碼。
擬解決的主要問(wèn)題
(1)如何使手機(jī)與用戶(hù)之間界面友好。運(yùn)用好java、xml提高移動(dòng)客戶(hù)端的可用性和安全性。
(2)在編碼過(guò)程中,如何在不同布局文件之間傳遞參數(shù),以及在系統(tǒng)中如何應(yīng)用XML文件。
(3)如何應(yīng)用java技術(shù)解決控件與布局文件之前訪(fǎng)問(wèn)問(wèn)題,提升用戶(hù)使用效率,優(yōu)化移動(dòng)端性能。
用戶(hù)登錄,進(jìn)入本軟件,彈出密碼對(duì)話(huà)框,提示用戶(hù)輸入密碼,登錄本軟件 2 類(lèi)別維護(hù),用戶(hù)可以增加日常收入、日常支出類(lèi)別,并且可以刪除相應(yīng)的類(lèi)
三、研究步驟、方法及措施:
3.1 研究的步驟
1確定論文的題目研究的主要內(nèi)容
2查看收集相關(guān)題材的各類(lèi)文獻(xiàn)
3收集需求信息制定詳細(xì)需求說(shuō)明書(shū)
4搭建系統(tǒng)框架完成系統(tǒng)所要求實(shí)現(xiàn)的功能的編碼
5對(duì)系統(tǒng)進(jìn)行性能測(cè)試
6完成畢業(yè)論文
3.2 研究方法及措施
1查閱個(gè)人銀行賬目管理系統(tǒng)的相關(guān)文獻(xiàn)資料。
2完成個(gè)人銀行賬目管理系統(tǒng)的需求流程分析和詳細(xì)設(shè)計(jì)。
3文檔主要利用Microsoft Word 2003書(shū)寫(xiě)。
四、研究工作進(jìn)度:
序號(hào)
6時(shí)間 2014-1-6--2014-2-1 2014-2-2--2014-2-15 2014-2-16--2014-3-1 2014-3-1--2014-4-5 2014-4-6--2014-4-30 2014-5-1--2014-5-10 2014-5-11--2014-5-31 內(nèi)容 外文翻譯查閱文獻(xiàn)撰寫(xiě)文獻(xiàn)綜述 編寫(xiě)開(kāi)題報(bào)告 系統(tǒng)需求設(shè)計(jì)完成表結(jié)構(gòu)設(shè)計(jì) 個(gè)人銀行賬目管理系統(tǒng)的設(shè)計(jì)和詳細(xì)設(shè)計(jì) 編碼實(shí)現(xiàn)個(gè)人銀行賬目管理系統(tǒng) 完成系統(tǒng)測(cè)試和性能測(cè)試開(kāi)始進(jìn)行論文編寫(xiě) 完成畢業(yè)論文準(zhǔn)備答辯
五、主要參考文獻(xiàn):
[1]顧寶興,姬長(zhǎng)英,王海青,田光兆,鄭青根,王玲.農(nóng)用開(kāi)放式智能移動(dòng)平臺(tái)研制——農(nóng)業(yè)機(jī)械學(xué)報(bào)第43卷第4期2012.04.032
[2]吳芳芳.基于移動(dòng)平臺(tái)的廣告營(yíng)銷(xiāo)方法——新聞愛(ài)好者201 1·8(上半月)
[3]李玲.銀行個(gè)人結(jié)算賬戶(hù)管理工作存在的問(wèn)題及建議——會(huì)計(jì)園地2012/03
[4]余云.試論如何完善個(gè)人銀行結(jié)算賬戶(hù)的管理——投資理財(cái)
[5]吳敏,劉萍.基于J2ME和J2EE的手機(jī)銀行設(shè)計(jì)與實(shí)現(xiàn)——中文核心期刊《微計(jì)算機(jī)信息》(嵌入式與SOC)2006年第22卷第7_2期
[6]胡現(xiàn)玲。我國(guó)手機(jī)銀行發(fā)展現(xiàn)狀與.對(duì)策分析——《經(jīng)濟(jì)師》2011年第1期
[7]汪璐.3G時(shí)代手機(jī)銀行的發(fā)展思路——鄭州航空工業(yè)管理學(xué)院學(xué)報(bào)2013年6月第31卷第3期
[8]崔凱.基于移動(dòng)平臺(tái)的遠(yuǎn)程用戶(hù)體驗(yàn)方法與工具研究 ——2010湖南師范大學(xué):計(jì)算機(jī)應(yīng)用技術(shù)
第二篇:開(kāi)題報(bào)告(銀行賬目管理信息系統(tǒng))
開(kāi)題報(bào)告范文(銀行帳目管理信息系統(tǒng))
發(fā)布時(shí)間:2009-04-12 來(lái)源:畢業(yè)論文網(wǎng)
一.編寫(xiě)目的
《銀行帳目管理信息系統(tǒng)》開(kāi)題報(bào)告的編寫(xiě)目的是通過(guò)對(duì)《銀行帳目管理信息系統(tǒng)》中各模塊的分析,確定系統(tǒng)的體系結(jié)構(gòu),模塊內(nèi)容,技術(shù)方法,明確各模塊的功能和數(shù)據(jù)流,為程序編寫(xiě)定下宏觀(guān)體系框架。
二.開(kāi)發(fā)背景
隨著科技發(fā)展和社會(huì)進(jìn)步,尤其是計(jì)算機(jī)大范圍的普及,計(jì)算機(jī)應(yīng)用逐漸由大規(guī)??茖W(xué)計(jì)算的海量數(shù)據(jù)處理轉(zhuǎn)向大規(guī)模的事務(wù)處理和對(duì)工作流的管理,這就產(chǎn)生了以臺(tái)式計(jì)算機(jī)為核心,以數(shù)據(jù)庫(kù)管理系統(tǒng)為開(kāi)發(fā)環(huán)境的管理信息系統(tǒng)在大規(guī)模的事務(wù)處理和對(duì)工作流的管理等方面的應(yīng)用,特別是在銀行帳目管理之中的應(yīng)用日益收到人們的關(guān)注。
近年來(lái)我國(guó)信息產(chǎn)業(yè)發(fā)展迅速,手工管理方式在銀行帳目管理等需要大量事務(wù)處理的應(yīng)用中已顯得不相適應(yīng),采用IT技術(shù)提高服務(wù)質(zhì)量和管理水平勢(shì)在必行。目前,對(duì)外開(kāi)放必然趨勢(shì)使銀行業(yè)直面外國(guó)銀行巨頭的直接挑戰(zhàn),因此,銀行必須提高其工作效率,改善其工作環(huán)境。這樣,帳戶(hù)管理的信息化勢(shì)在必行。
在傳統(tǒng)的銀行帳戶(hù)管理中,其過(guò)程往往是很復(fù)雜的,繁瑣的,帳戶(hù)管理以入帳和出帳兩項(xiàng)內(nèi)容為核心,在此過(guò)程中又需要經(jīng)過(guò)若干道手續(xù),因?yàn)檎麄€(gè)過(guò)程都需要手工操作,效率十分低下,且由于他們之間關(guān)聯(lián)復(fù)雜,統(tǒng)計(jì)和查詢(xún)的方式各不相同;且會(huì)出現(xiàn)信息的重復(fù)傳遞問(wèn)題,因此該過(guò)程必須實(shí)現(xiàn)信息化。
我們的系統(tǒng)開(kāi)發(fā)的整體任務(wù)是實(shí)現(xiàn)銀行帳戶(hù)管理的系統(tǒng)化、規(guī)范化、自動(dòng)化和智能化,從而達(dá)到提高企業(yè)管理效率的目的。三.可行性研究
可行性研究能使新系統(tǒng)達(dá)到以最小的開(kāi)發(fā)成本取得最佳的經(jīng)濟(jì)效益??尚行匝芯康哪康模歉鶕?jù)開(kāi)發(fā)管理信息系統(tǒng)的請(qǐng)求,通過(guò)初步調(diào)查和系統(tǒng)目標(biāo)分析,對(duì)要開(kāi)發(fā)的銀行帳戶(hù)管理信息系統(tǒng)從技術(shù)上、經(jīng)濟(jì)上、資源上和管理上進(jìn)行是否可行的研究。這是一項(xiàng)保證資源合理使用、避免失誤和浪費(fèi)的重要工作。
⊙ 經(jīng)濟(jì)上的可行性:主要分析成本與收益、投資效果等。
⊙ 技術(shù)上的可行性:要分析技術(shù)力量、計(jì)算機(jī)性能、通訊網(wǎng)絡(luò)和系統(tǒng)條件等。
⊙ 資源上的可行性:主要指管理、經(jīng)費(fèi)能否得到保證。
⊙ 管理上的可行性:如帳戶(hù)管理水平、數(shù)據(jù)收集可能性、規(guī)章制度健全程度和領(lǐng)導(dǎo)對(duì)發(fā)展系統(tǒng)的態(tài)度。
可行性分析已經(jīng)寫(xiě)成可行性研究報(bào)告,并報(bào)請(qǐng)領(lǐng)導(dǎo)及有關(guān)專(zhuān)家審議,通過(guò)后進(jìn)入了以下需求分析階段。
四.系統(tǒng)需求分析
用戶(hù)的主要需求有帳戶(hù)管理、取款機(jī)管理、用戶(hù)查詢(xún)、查詢(xún)統(tǒng)計(jì)等幾個(gè)方面:
(1)帳戶(hù)管理方面:存款、取款、開(kāi)戶(hù)、銷(xiāo)戶(hù)、修改信息、辦卡、掛失卡;
(2)取款機(jī)信息管理方面:管理員管理查詢(xún)和維護(hù)、客戶(hù)查詢(xún)和取款等功能;
(3)用戶(hù)查詢(xún)方面:用戶(hù)希望便于查詢(xún)自己帳戶(hù)的信息。
(4)查詢(xún)統(tǒng)計(jì)方面:VIP用戶(hù)統(tǒng)計(jì)、ATM業(yè)務(wù)量統(tǒng)計(jì)、異動(dòng)查詢(xún)統(tǒng)計(jì)、持卡總量消費(fèi)統(tǒng)計(jì)、工作量負(fù)荷統(tǒng)計(jì)等功能。
五.要解決的關(guān)鍵問(wèn)題
(1)要解決的關(guān)鍵問(wèn)題之一:數(shù)據(jù)的安全性問(wèn)題
解決辦法為:采用DES加密算法;(2)要解決的關(guān)鍵問(wèn)題之二:數(shù)據(jù)的一致性問(wèn)題
解決辦法為:使用觸發(fā)器;
(3)要解決的關(guān)鍵問(wèn)題之三:系統(tǒng)查找數(shù)據(jù)的速度問(wèn)題
解決辦法為:采用哈希算法進(jìn)行數(shù)據(jù)的快速查找。
六.系統(tǒng)定義
通過(guò)該銀行賬戶(hù)管理系統(tǒng),使銀行的賬戶(hù)管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而達(dá)到提高賬戶(hù)管理效率的目的。系統(tǒng)開(kāi)發(fā)的任務(wù)是使辦公人員可以輕松快捷的完成對(duì)賬戶(hù)管理的任務(wù)。
1、系統(tǒng)要求:
(1)系統(tǒng)應(yīng)符合銀行賬戶(hù)管理的規(guī)定,滿(mǎn)足銀行相關(guān)人員日常使用的需要,并達(dá)到操作過(guò)程中的直觀(guān),方便,實(shí)用,安全等要求;
(2)系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開(kāi)發(fā)的技術(shù)維護(hù)人員補(bǔ)充,維護(hù);
(3)系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)用戶(hù)需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、備份等操作;
(4)盡量采用現(xiàn)有軟件環(huán)境及先進(jìn)的管理系統(tǒng)開(kāi)方案,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開(kāi)發(fā)水平和應(yīng)用效果的目的。
2、系統(tǒng)功能:
系統(tǒng)主要實(shí)現(xiàn)了:帳戶(hù)管理、取款機(jī)管理、用戶(hù)查詢(xún)、查詢(xún)統(tǒng)計(jì)等功能,◆帳戶(hù)管理模塊:存款、取款、開(kāi)戶(hù)、銷(xiāo)戶(hù)、修改信息、辦卡、掛失卡;
◆用戶(hù)查詢(xún)模塊;
◆取款機(jī)信息管理模塊:管理員管理查詢(xún)和維護(hù)、客戶(hù)查詢(xún)和取款等功能; ◆查詢(xún)統(tǒng)計(jì)模塊:VIP用戶(hù)統(tǒng)計(jì)、ATM業(yè)務(wù)量統(tǒng)計(jì)、異動(dòng)查詢(xún)統(tǒng)計(jì)、持卡總量消費(fèi)統(tǒng)計(jì)、工作量負(fù)荷統(tǒng)計(jì)等功能。
七.系統(tǒng)體系結(jié)構(gòu)
在系統(tǒng)功能分析的基礎(chǔ)上,做系統(tǒng)功能模塊圖如下:
八.運(yùn)行環(huán)境
操作系統(tǒng):Window 2000 IE5.0 開(kāi)發(fā)平臺(tái):Visual ForPro 6.0
第三篇:Qualcomm平臺(tái)android開(kāi)發(fā)總結(jié)
1、高通平臺(tái)android開(kāi)發(fā)總結(jié).7 1.1 搭建高通平臺(tái)環(huán)境開(kāi)發(fā)環(huán)境.7 1.2 搭建高通平臺(tái)環(huán)境開(kāi)發(fā)環(huán)境.7 1.2.1 高通android智能平臺(tái)概述.7
1.2.1.1 什么是L4,REX,BREW,AMSS以及相互之間的關(guān)系.7 1.2.2 選擇合適的源代碼以及工具.8
1.2.2.1 獲取經(jīng)過(guò)高通打補(bǔ)丁的android 源代碼.8 1.2.2.2 獲取高通針對(duì)不同處理器的vendor源代碼.9 1.2.2.3 獲取 modem 源代碼.9
1.2.2.3.1 高通 modem 源代碼編譯前的修正.13 1.2.3 建立 Android 開(kāi)發(fā)環(huán)境.14 1.2.4 建立 modem 開(kāi)發(fā)環(huán)境.15 1.2.4.1 補(bǔ)充.16
1.2.4.1.1 獲取 licenses 16
1.2.4.1.2 Flex 簡(jiǎn)單使用指南.16 1.2.4.1.3 啟動(dòng) license 服務(wù)器.18
1.2.4.1.4 license 沒(méi)有辦法從服務(wù)器獲取的幾種情況.18 1.2.4.1.5 破解 rvds 的license 19 1.2.5 在高通開(kāi)發(fā)板上燒錄文件系統(tǒng).19
1.3 高通平臺(tái),android和 modem 編譯流程分析.21 1.3.1 android代碼編譯流程分析.21 1.3.1.1 編譯工具檢測(cè).22 1.3.1.1.1 22
1.3.1.2 appsboot.mbn 生成過(guò)程解析.22
1.3.1.3 boot.img 生成過(guò)程解析,怎樣手動(dòng)生成 boog.img 28 1.3.1.4 編譯過(guò)程存在的問(wèn)題.32
1.3.1.4.1 prelinkmap 的時(shí)候 base 0xaff00000 out of range 32 1.3.1.4.2 LOCAL_SDK_VERSION 使應(yīng)用程序不能訪(fǎng)問(wèn)hide的api 32 1.3.1.4.3 armv5te-vfp 導(dǎo)致一些游戲運(yùn)行不了.32 1.3.2 分布式編譯 android 代碼.33 1.3.3 modem 代碼編譯流程分析.33
1.3.3.1 單獨(dú)編譯某個(gè)模塊(如:qcsbl oemsbl).34 1.3.3.2 $(TARGETDIR)/exist 規(guī)則解析.36 1.3.3.3 setup規(guī)則解析.36
1.3.3.3.1 corebsp_create_incpaths 36 1.3.3.3.2 create_incpaths 36 1.3.3.3.3 amsssetup 36
1.3.3.3.4 amsslinkaddress 36 1.3.3.3.5 firmware 38 1.3.3.4 deps規(guī)則解析.38
1.3.3.5 corebsp_build規(guī)則解析.38 1.3.3.5.1 corebsp_build_action 38 1.3.3.5.1.1 corebsp_scons 規(guī)則.39 1.3.3.5.1.1.1 corebsp_scons_start 39 2.3.3.5.1.1.1 corebsp_scons_action 39
1.3.3.5.1.1.2.1 命令 pboot_gen_elf image_header pboot_add_hash 解析.40
1.3.3.5.1.1.2.2 env.BinBuilder 過(guò)程解析.41 1.3.3.5.1.1.2.3 env.MbnBuilder 過(guò)程解析.41
1.3.3.5.1.1.2.4 env.MbnDummyBuilder 過(guò)程解析.42 1.3.3.5.1.1.2.5 fsbl.mbn 生成過(guò)程解析.43 1.3.3.5.1.1.2.6 dbl.mbn 生成過(guò)程解析.43
1.3.3.5.1.1.2.7 AMSS_AABBQOLYM.mbn 生成過(guò)程解析.43 1.3.3.5.1.1.2.8 adsp.mbn 生成過(guò)程解析.43 1.3.3.5.1.1.2.9 osbl.mbn 生成過(guò)程解析.44
1.3.3.5.1.1.2.10 enandprg_AABBQOLYM.mbn 生成過(guò)程解析.44 1.3.3.5.1.1.2.11 nandprg_AABBQOLYM.mbn 生成過(guò)程解析.45 1.3.3.5.1.1.2.12 emmcbld.mbn 生成過(guò)程解析.45 3.3.3.5.1.1.1 corebsp_scons_done 46 1.3.3.5.1.2 corebsp 46
1.3.3.5.2 corebsp_create_incpaths 46 1.3.3.5.3 corebsp_setup 46 1.3.3.6 libs 46
1.3.3.7 copybar規(guī)則解析.47 1.3.3.8 exe規(guī)則解析.47
1.3.3.8.1 CORELIBS_AABBQOLYM.mbn生成過(guò)程解析.47 1.3.3.8.2 amss.mbn 生成過(guò)程解析.47 1.3.3.9 bldprod規(guī)則解析.48
1.3.3.10 create_mem_feat_html規(guī)則解析.48 1.3.3.10.1 50
1.3.3.11 partition規(guī)則解析.50
1.3.3.11.1 eMCC 啟動(dòng)和 NAND 啟動(dòng)的分區(qū)格式是不一樣的,如果是 eMCC 啟動(dòng),多了編譯選項(xiàng):.50
1.4 高通平臺(tái) 7630 啟動(dòng)流程分析.52 1.4.1 啟動(dòng)流程概述.52 1.4.2 pbl 流程.52 1.4.3 dbl 流程.52 1.4.4 osbl 流程.54
1.4.4.1 osbl 裝載 appsbl 過(guò)程分析.56
1.4.5 appsbl 流程(源代碼在 android中).56
1.4.5.1 aboot_init 過(guò)程分析(需要側(cè)重關(guān)心的部分).58 1.4.5.1.1 fastboot 模式分析.61
1.4.5.1.1.1 什么是 fastboot 模式.61
1.4.5.1.1.2 fastboot 模式與 recovery 模式的區(qū)別.61 1.4.5.1.1.3 怎樣進(jìn)入 fastboot 模式.62
1.4.5.1.1.4 android 系統(tǒng)手機(jī)刷機(jī)過(guò)程分析(補(bǔ)充知識(shí))62 1.4.5.1.2 appsbl 引導(dǎo) android 系統(tǒng).63
1.4.5.1.2.1 Android 系統(tǒng)啟動(dòng)過(guò)程中存在的問(wèn)題.67 1.4.5.1.1.1.1 linker 問(wèn)題導(dǎo)致系統(tǒng)無(wú)法啟動(dòng).67 1.4.6 AMSS 流程.69
1.5 android 系統(tǒng)重啟關(guān)機(jī)流程分析.82 1.5.1 c語(yǔ)言中調(diào)用 reboot 函數(shù).82 1.5.2 通過(guò) adb 讓系統(tǒng)重啟.82
1.5.3 fastboot 模式下系統(tǒng)重啟.83 1.5.4 系統(tǒng)關(guān)機(jī).84
1.5.5 內(nèi)核中的系統(tǒng)調(diào)用 reboot 85 1.6 軟件調(diào)用流程分析.89 1.6.1 設(shè)置sim卡狀態(tài).89 1.6.2 設(shè)置背光.90 1.6.3 獲取電池信息.90
1.7 python scons 語(yǔ)法學(xué)習(xí).94 1.8 python 語(yǔ)法學(xué)習(xí).94 1.8.1 Python中文全攻略.94
1.8.2 推薦一款Python編輯器.94
1.8.3 使用 pyExcelerator 讀 Execl 文件.94 1.8.4 xlrd 解析 xls 文件.95 1.8.5 xlrd 生成 xls 文件.95
1.9 Python 語(yǔ)言之 scons 工具流程分析.95 1.9.1 Program 方法.100 1.9.2 Library 方法.100
2、高通常用工具使用.101 2.1 QPST 101 2.2 QXDM 101 2.3 QCAT 101
3、工程模式.101
4、Android 系統(tǒng)更新升級(jí)總結(jié).104 4.1 刷機(jī)基本知識(shí).104
4.1.1 各品牌代表手機(jī)刷機(jī)模式進(jìn)入方法.104 4.1.1.1 HTC G1 104
4.1.1.2 三星 Galaxy i7500 104 4.1.1.3 Google Nexus One 105 4.1.2 fastboot 模式.105
4.1.2.1 fastboot 模式概述.105
4.1.2.2 PC端fastboot 命令分析.106 4.1.2.2.1 命令選項(xiàng) –w –s-p –c 106 4.1.2.3 手機(jī)端fastboot 命令分析.107 4.1.2.3.1 boot 107 4.1.2.3.2 erase 107 4.1.2.3.3 flash 107 4.1.2.3.4 continue 107 4.1.2.3.5 reboot 107
4.1.2.3.6 reboot-bootloader 107 4.1.2.3.7 getvar 107 4.1.2.3.8 download 108 4.1.2.3.9 update 108
4.1.2.3.9.1 system/core/fastboot/fastboot.c:294: 108 4.1.2.3.9.2 fprintf(stderr, “archive does not contain '%s'n”, name);108 4.1.2.4 fastboot 模式流程分析.108 4.1.3 recovery 模式.108
4.1.3.1 recovery 模式概述.108 4.1.3.2 軟件升級(jí)包.109
4.1.3.3 recovery v1跟recovery v2的區(qū)別.109 4.1.3.4 軟件升級(jí)腳本語(yǔ)法解析.109 4.1.3.4.1.1 mount 110 4.1.3.4.1.2 getprop 111
4.1.3.4.1.3 file_getprop 111 4.1.3.4.1.4 assert 111 4.1.3.4.1.5 format 111
4.1.3.4.1.6 apply_patch_check 111 4.1.3.4.1.7 apply_patch_space 111 4.1.3.4.1.8 apply_patch 111
4.1.3.4.1.9 package_extract_file 112 4.1.3.4.1.10 ui_print 112
4.1.3.4.1.11 META-INF/com/google/android/update-script 腳本分析.1124.1.3.4.2 Recovery 模式中 install_package 函數(shù)解析.117 4.1.3.5 Recovery 流程分析.118 4.1.3.5.1 恢復(fù)出廠(chǎng)設(shè)置.118 4.1.3.5.2 系統(tǒng)更新流程.119
4.1.3.5.3 通過(guò)sd卡實(shí)現(xiàn)刷機(jī).121 4.1.3.6 系統(tǒng)升級(jí)包案例分析.122 4.1.4 工程模式(HBoot)模式.122 4.1.4.1 HBOOT降級(jí)方法.122
4.2 如何制作升級(jí)包 update.zip 123 4.2.1 手動(dòng)制作升級(jí)包.123 4.2.2 自動(dòng)制作升級(jí)包.123 4.3 Android 簽名機(jī)制.125
4.4 android 文件系統(tǒng)權(quán)限概述.125 4.4.1 獲取手機(jī)root權(quán)限.127 4.4.2 adb默認(rèn)權(quán)限分析.128
4.4.3 adb root命令切換到 root 權(quán)限.129 4.4.4 掛載系統(tǒng)分區(qū)為讀寫(xiě)(remount)130
4.4.5 通過(guò)修改 boot.img 獲取 Nexus One 權(quán)限.132 4.5 系統(tǒng)應(yīng)用移植.132
4.5.1 Android 2.2在線(xiàn)升級(jí)的移植.132
4.5.2 解決donut Gtalk、Market登錄不了的問(wèn)題.133 4.5.3 apk反編譯問(wèn)題總結(jié).133
4.5.4 系統(tǒng)重啟.133
5、高通linux內(nèi)核驅(qū)動(dòng)開(kāi)發(fā).133 5.1 添加串口調(diào)試.133 5.2 Sensor 傳感器.133
5.3 USB 枚舉 USB Composition 134 5.4 USB 枚舉 USB Composition 136
6、從 android 源代碼制作 sdk 136 6.1 linux sdk 137 6.2 windows sdk 137
7、程序安裝與調(diào)試.138
8、android 框架流程分析.138 8.1 屏幕顯示相關(guān).138 8.1.1 屏幕分辨率.138 8.1.2 屏幕模式.139
8.2 Android 開(kāi)機(jī)充電.141 8.3 Android 開(kāi)機(jī)動(dòng)畫(huà).141 8.3.1 內(nèi)核開(kāi)機(jī)畫(huà)面.141 8.3.2 文件系統(tǒng)開(kāi)機(jī)畫(huà)面.141
8.3.2.1 開(kāi)機(jī)顯示的 ANDROID 文字.141 8.3.2.2 ANDROID 發(fā)光動(dòng)畫(huà).142
8.3.2.3 initlogo.rle 文件分析.143
8.3.2.4 bootanimation.zip 文件分析.143 8.3.3 三星I9000 開(kāi)機(jī)動(dòng)畫(huà).144 8.4 JNI調(diào)用流程.145
8.5 Android 開(kāi)機(jī)鈴聲.145 8.6 GPS 導(dǎo)航.145
8.6.1 GPS導(dǎo)航原理.145 8.6.2 GPS導(dǎo)航軟件.145
9、高通modem框架流程分析.146 9.1.1 添加自定義rpc調(diào)用.146
9.1.1.1 從AP端獲取modem的系統(tǒng)分區(qū)信息.146 9.1.2 添加自定義 AT命令.146
10、linux 應(yīng)用.146
10.1 嵌入式Linux通過(guò)幀緩存截圖包括Scheduling(調(diào)度), File system(文件系統(tǒng)), Networking(網(wǎng)絡(luò)), Device driver(設(shè)備驅(qū)動(dòng)程序), Memory management(存儲(chǔ)管理), Paging(存儲(chǔ)頁(yè)面管理)-都在內(nèi)核中完成.一直到現(xiàn)在廣泛應(yīng)用的操作系統(tǒng),如UNIX,Linux,和Windows還大都是monolithic kernel操作系統(tǒng).但隨著操作系統(tǒng)變得越來(lái)越復(fù)雜(現(xiàn)代操作系統(tǒng)的內(nèi)核有一兩百萬(wàn)行C程序是很常見(jiàn)的事情),把所有這些功能都放在內(nèi)核中使設(shè)計(jì)難度迅 速增加.微內(nèi)核是一個(gè)與Monolithic Kernel相反的設(shè)計(jì)理念.它的目的是使內(nèi)核縮到最小,把所有可能的功能模塊移出內(nèi)核.理想情況下,內(nèi)核中僅留下Address Space Support(地址空間支持),IPC(Inter-Process Communication,進(jìn)程間通訊),和Scheduling(調(diào)度),其他功能模塊做為用戶(hù)進(jìn)程運(yùn)行。
REX 是在 L4 之上封裝的服務(wù),是一個(gè)搶占式,多任務(wù)的RTOS,所有的任務(wù)都以task的形式存在,REX提供包括任務(wù)創(chuàng)建,同步,互斥,計(jì)時(shí)器,中斷控制等功能的 API,這里的task實(shí)際上就是我們的線(xiàn)程,每個(gè) task對(duì)應(yīng)著一個(gè)線(xiàn)程。REX維護(hù)一個(gè)task list(雙向鏈表),始終運(yùn)行高優(yōu)先級(jí)的task。products里面所有的服務(wù)包括3g協(xié)議棧等都是以task的形式跑在rex之上的。而B(niǎo)rew的話(huà)是運(yùn)行的環(huán)境,跟Java 有點(diǎn)兒類(lèi)似,相當(dāng)于是一個(gè)虛擬機(jī)。AMSS――高級(jí)的移動(dòng)用戶(hù)軟件(Advanced Mobile Subscriber Software)技術(shù),是一種新的軟件架構(gòu),是對(duì)原來(lái)軟件架構(gòu) DMSS 的升級(jí)。AMSS源代碼實(shí)際上是QC BREW(Binary Runtime Environment For Wireless)平臺(tái)的的底層部分,去掉了為應(yīng)用程序提供接口的AEE(application execution environment)部分,高通在Dual Proc芯片上的其他平臺(tái)基本上都是采用的這樣的架構(gòu)。
參考文檔:
微內(nèi)核操作系統(tǒng)及L4概述
http://wenku.baidu.com/view/90929762caaedd3383c4d311.html MSM平臺(tái)上的AMSS http://blog.csdn.net/yili_xie/archive/2010/01/04/5129469.aspx
1.2.2 選擇合適的源代碼以及工具 要編譯出可供燒寫(xiě)使用的鏡像文件需要三部分代碼: 1)獲取經(jīng)過(guò)高通打補(bǔ)丁的 android 源代碼 2)獲取高通針對(duì)不同處理器的 vendor 源代碼 3)獲取 modem 源代碼
1.2.2.1 獲取經(jīng)過(guò)高通打補(bǔ)丁的android 源代碼 網(wǎng)址:
http://004km.cn1312 Chipset(such as QSC6270):MSM7227-1 RF chipset(such as RGR6240):RTR6285 PMIC chipset(such as PM7540):PM7540 WCMDA Supported Bands(900,1900,2100?.if support WCDMA):2100 CMDA Supported Bands(450,850,1900,2100? if support CDMA):not suport OS(Brew,BMP,Android,WM,ThinUI(no UI)?):android froyo OS version(Android Donuts?): android froyo
1.2.2.3.1 高通 modem 源代碼編譯前的修正
從高通獲取的源代碼直接編譯會(huì)存在一些問(wèn)題,以下為可能的問(wèn)題以及解決方法:
1)為相應(yīng)的腳本加上編譯選項(xiàng)
vim./AMSS/products/7x30/build/ms/xxxxxx.cmd 加上: BUILD_UNIX=yes
2)如果編譯過(guò)程出現(xiàn).pl 文件沒(méi)有執(zhí)行權(quán)限而退出,那么為工程下面所有的 pl 文件加上可執(zhí)行屬性,命令:
find./-name “*.pl” |xargs chmod 755
3)無(wú)法找到需要的 pl 腳本解析器
vim./AMSS/products/7x30/tools/build/depgen.pl 修改
#!/pkg/perl/5.6.1/bin/perl-w 為
#!/usr/bin/perl-w
4)如果出現(xiàn)錯(cuò)誤:
“AMSS/products/7x30/core/bsp/build/data/incpathsaaabqmlym.py”, line 14 IndentationError: expected an indented block 修改文件:./AMSS/products/7x30/core/bsp/build/scripts/genpaths.pl 內(nèi)容:
#if($line =~ /^# makefile(from/)為:
if($line =~ /^# makefile /)原因分析:
genpaths.pl 會(huì)對(duì)編譯過(guò)程的中間信息 :...line=# makefile(from'incpaths.min',line 363)line=QVPCODEC_AUDIOINC = $(QVPCODEC)/audio/inc...等信息進(jìn)行解析,由于我們使用的是中文系統(tǒng),所以以上內(nèi)容變?yōu)椋?line=# makefile(從'incpaths.min',行 363)line=QVPCODEC_AUDIOINC = $(QVPCODEC)/audio/inc 所以導(dǎo)致:
#if($line =~ /^# makefile(from/)判斷條件為為 false 無(wú)法正確生成 incpathsaaabqmlym.py,python 在解析該文件的時(shí)候認(rèn)為存在語(yǔ)法錯(cuò)誤。
在 modem 代碼 M7630AABBQMAZM2020(HY11-N2280-2.zip)中開(kāi)始使用 genincpaths.py 產(chǎn)生
./AMSS/products/7x30/core/bsp/build/data/incpathsaaabqoazm.py 文件,所以修改文件 amend-source-code-qualcomm-modem.sh 在腳本中需要加入以下內(nèi)容: incpathsxxx_py=$PRODUCT_DIR/core/bsp/build/scripts/genincpaths.py if test-f $incpathsxxx_py;then PERL=`which /usr/bin/perl` sed-i “s/(from//g” $incpathsxxx_py fi./AMSS/products/7x30/multimedia/audio/drivers/Adie/AdieCodecDb/src/DALAdieCodecDb.c #DalAdieCodecDbInternal.h 改為: #include “DALAdieCodecDbInternal.h”
5)如果出現(xiàn) make: execvp:../../../../platform/cs/bin/cifc: Permission denied 錯(cuò)誤,執(zhí)行以下命令:
chmod-R 755 AMSS/platform/cs/bin/*
1.2.3 建立 Android 開(kāi)發(fā)環(huán)境(略)
curl http://android.git.kernel.org/repo >~/bin/repo chmod a+x ~/bin/repo export PATH=~/bin:$PATH 1)安裝基本軟件
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl sun-java5-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
2)安裝 sun-java5-jdk ubuntu 下通過(guò)命令: sudo apt-get install sun-java5-jdk 將會(huì)安裝下面的包 sun-java5-bin sun-java5-demo sun-java5-jdk sun-java5-jre sun-java5-plugin 如果ubuntu 發(fā)布版本中沒(méi)有 sun-java5-jdk 那么 sudo vim /etc/apt/source.list #for sun-java5-jdk deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse sudo apt-get update sudo apt-get sun-java5-jdk 或者,如果 ubuntu 版中不支持 apt-get,那么用手動(dòng)安裝: sudo mount-t nfs 172.20.127.15:/home/shared /mnt sudo dpkg-i /mnt/tools/debs/java-1.5.0-sun/sun-java5-*
3)配置usb cd /etc/udev/rules.d/ sudo vi 50-android.rules # adb single interface device SUBSYSTEM==“usb_device”, SYSFS{idVendor}==“18d1”, SYSFS{idProduct}==“d00d”, MODE=“0664”, GROUP=“plugdev” # adb composite interface device SUBSYSTEM==“usb_device”, SYSFS{idVendor}==“18d1”, SYSFS{idProduct}==“deed”, MODE=“0664”, GROUP=“plugdev” # Sooner low-level bootloader BUS==“usb”, SYSFS{idVendor}==“0bb4”, SYSFS{idProduct}==“0a51”, MODE=“0664”,GROUP=“plugdev” sudo /etc/init.d/udev restart
1.2.4 建立 modem 開(kāi)發(fā)環(huán)境
與android 源代碼不同,modem 編譯工具使用的是 RVDS ,實(shí)際上只用到其中的 RVCT 編譯器,高通不提供該工具,我們必須從arm公司獲取相應(yīng)的授權(quán),RVDS 是 ADS 的升級(jí)版本,從 ADS 1.2 開(kāi)始到 RVDS 3.1 我們公司都有其授權(quán),按照高通的要求我們目前必須使用 RVDS 2.2 并且使用他的 349 patch。RVDS 2.2 安裝以及使用步驟如下:
1).RVDS 2.2 共享在 172.20.127.15:/home/shared/ 目錄 sudo mount-t nfs 172.20.127.15:/home/shared/ /mnt cd /mnt/qualcommon/RVDS-2.2/ linux下rvds2.2的安裝程序?yàn)椋?/p>
./rvds2.2_linux-pentium/setuplinux.bin 執(zhí)行以上命令,按照默認(rèn)步驟安裝,安裝路徑為:~/ARM 注意事項(xiàng):
安裝過(guò)程如果出現(xiàn)錯(cuò)誤:
..................java.lang.UnsatisfiedLinkError: /tmp/ismp001/6073753.tmp: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory 從網(wǎng)上下載 libstdc++-libc6.2-2.so.3 拷貝到 /usr/lib 目錄 ,或者從下面地址獲?。?/p>
http://172.20.127.15/repositories/DocsAndTools/Tools/Qualcomm/RVDS-2.2-patch/patch/libstdc++-libc6.2-2.so.3 工具的安裝通過(guò)腳本進(jìn)行了簡(jiǎn)化,具體過(guò)程請(qǐng)參考文檔: 80-N0216-2_A_M7630AABBQMAZM1170.pdf 80-VR881-7_B_M7630AABBQMLZA1200.pdf 80-VR192-1_C_AMSS_Linux_Software_Users_Guide.pdf 80-VR192-1_D_AMSS_Linux_Software_Users_Guide.pdf
2)安裝高通指定的 593 patch cd /mnt/qualcommon/RVDS2.2/下執(zhí)行命令:./setup-patch-rvct2.2-bin593-lib349.sh
目前版本只支持 32 位的系統(tǒng) 1.2.4.1 補(bǔ)充
vim./AMSS/products/7x30/core/bsp/build/scripts/defaults.py 定義了工作線(xiàn)程
#num_jobs = num_cpu * 2 modified by mhf num_jobs = 2 if num_jobs < 4: num_jobs = 2 if num_jobs > 8: num_jobs = 8 env.SetOption('num_jobs', num_jobs)――――――― 獲取 RVDS 官方網(wǎng)站下載評(píng)估版本
https://silver.arm.com/browse http://004km.cn/wiki/QAEP#Branch_Releases http://004km.cn/wiki/QLBEP 下載 M7630AABBQMLZA1150 分支:
February 1, 2010 M7630AABBQMLZA1150 msm7630 eclair M7630AABBQMLZA1150.xml 命令如下:
mkdir-pv ~/workspace/gphone/eclair-M7630AABBQMLZA1150-20100201 cd ~/workspace/gphone/eclair-M7630AABBQMLZA1150-20100201 repo init-u git://codeaurora.org/platform/manifest.git-b eclair-m M7630AABBQMLZA1150.xml nohup repo sync 代碼下的 vendor/qcom-proprietary 來(lái)自包 HY11-VR881-5.zip 以上兩部分代碼已經(jīng)下載并且合并,共享在:
http://172.20.127.15/repositories/TD1002/trunk/eclair-M7630AABBQMLZA1150---------------編譯 eclair 代碼
svn co http://172.20.127.15/repositories/TD1002/trunk/eclair-M7630AABBQMLZA1150 cd eclair-M7630AABBQMLZA1150 cd eclair-M7630AABBQMLZA1150$../setenv.sh../make-image.sh ======= modem代碼從高通網(wǎng)站:https://support.cdmatech.com/login/ 上獲取 我們目前使用的是: 共享在:
http://172.20.127.15/repositories/TD1002/trunk/modem-M7630AABBQMAZM1220-------編譯 modem 代碼
svn co http://172.20.127.15/repositories/TD1002/trunk/modem-M7630AABBQMAZM1220 cd modem-M7630AABBQMAZM1220../setenv-qualcomm.sh../make ======== 編譯結(jié)果分別如下:------------其中 adsp.mbn,amss.mbn,dbl.mbn,osbl.mbn,partition.mbn 位于以下目錄:./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/adsp.mbn./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/amss.mbn./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/dbl.mbn./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/osbl.mbn./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/partition.mbn------------appsboot.mbn,boot.img,system.img,userdata.img 位于以下目錄:./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/appsboot.mbn./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/boot.img./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/system.img./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/userdata.img./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/system.img.ext3./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/userdata.img.ext3------------eMMC 啟動(dòng)使用的是 ext3 文件系統(tǒng),需要使用鏡像 system.img.ext3 userdata.img.ext3 補(bǔ)充說(shuō)明:
partition.mbn 文件的原始數(shù)據(jù)來(lái)自配置文件:
./AMSS/products/7x30/tools/jsdcc/partition_load_pt/partition.xml
1.3 高通平臺(tái),android和 modem 編譯流程分析 android 代碼編譯流程分析 modem 代碼編譯流程分析 1.3.1 android代碼編譯流程分析
1.從服務(wù)器下載 android 源碼到當(dāng)前目錄
http://smartphone/repositories/TD1014/branch/froyo_almond-M76XXTSNCJNLYA6050-drivers/ svn co http://172.20.127.15/repositories/TD1014/trunk/froyo_almond-M76XXTSNCJNLYA6050/ cd froyo_almond-M76XXTSNCJNLYA6050/../setenv.sh 設(shè)置環(huán)境變量 Setting Environment...通常情況下 generic 用于編譯模擬器版本 Options are: 1.generic 2.msm7627_surf 3.msm7627_ffa 4.tiny-system ====從以上列表中選擇==== Which would you like? [1]
燒錄的鏡像文件appsboothd.mbn appsboot.mbn boot.img system.img userdata.img persist.img 來(lái)自 android 源碼 appsboot.mbn 的主要功能是裝載 linux 內(nèi)核,通過(guò) linux 的引導(dǎo)來(lái)完成 android 系統(tǒng)的加載,appsboot.mbn 被燒寫(xiě)在相應(yīng)的分區(qū),它的加載由 osbl.mbn 來(lái)完成,osbl.mbn 程序來(lái)自 modem。
7x30 7x27 系列 appsboot 不一樣,7x30 的 appsboot.mbn 是 7x27 appsboothd.mbn appsboot.mbn 兩個(gè)文件的合并
1)appsboot.mbn 生成過(guò)程解析
2)boot.img 生成過(guò)程解析,怎樣手動(dòng)生成 boog.img
1.3.1.1 編譯工具檢測(cè)
make out/target/product/msm7630_surf/appsboot.mbn 1.3.1.1.1
1.3.1.2 appsboot.mbn 生成過(guò)程解析
make out/target/product/msm7630_surf/appsboot.mbn make out/target/product/msm7630_surf/nandwrite make out/target/product/msm7630_surf/emmc_appsboot.mbn 分別執(zhí)行:
make-C bootable/bootloader/lk BOOTLOADER_OUT=../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ msm7630_surf make-C bootable/bootloader/lk BOOTLOADER_OUT=../../.././out/target/product/msm7630_surf/obj/nandwrite msm7630_surf_nandwrite BUILD_NANDWRITE=1 make-C bootable/bootloader/lk BOOTLOADER_OUT=../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_EMMC_OBJ msm7630_surf EMMC_BOOT=1 生成 nandwrite =============== #build nandwrite as a part of Android Build TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(TARGET_PRODUCT)_nandwrite/lk NANDWRITE_OUT := $(TOP)/$(TARGET_OUT_INTERMEDIATES)/nandwrite
nandwrite_clean: $(hide)rm-f $(TARGET_NANDWRITE)$(hide)rm-rf $(NANDWRITE_OUT)
$(NANDWRITE_OUT): mkdir-p $(NANDWRITE_OUT)
$(TARGET_NANDWRITE): nandwrite_clean $(NANDWRITE_OUT)@echo $(TARGET_PRODUCT)_nandwrite $(MAKE)-C bootable/bootloader/lk BOOTLOADER_OUT=../../../$(NANDWRITE_OUT)$(TARGET_PRODUCT)_nandwrite BUILD_NANDWRITE=1 ================
vim./bootable/bootloader/lk/makefile:98: TARGET := msm7630_surf #./bootable/bootloader/lk/project/msm7630_surf.mk PLATFORM := msm7x30 #./bootable/bootloader/lk/target/msm7630_surf/rules.mk msm7x30 msm7630_surf.mk msm7630_surf_nandwrite ============================= include project/$(PROJECT).mk include target/$(TARGET)/rules.mk include target/$(TARGET)/tools/makefile include platform/$(PLATFORM)/rules.mk include arch/$(ARCH)/rules.mk include platform/rules.mk include target/rules.mk include kernel/rules.mk include dev/rules.mk include app/rules.mk...include make/module.mk...include make/build.mk ======================== vim bootable/bootloader/lk/make/module.mk INCMODULES := $(MODULES)$(info including $(INCMODULES))include $(addsuffix /rules.mk,$(INCMODULES))展開(kāi)為:./bootable/bootloader/lk/app/nandwrite/rules.mk./bootable/bootloader/lk/dev/fbcon/rules.mk./bootable/bootloader/lk/dev/keys/rules.mk./bootable/bootloader/lk/lib/debug/rules.mk./bootable/bootloader/lk/lib/heap/rules.mk./bootable/bootloader/lk/lib/libc/rules.mk./bootable/bootloader/lk/lib/ptable/rules.mk ======================== bootable/bootloader/lk/make/build.mk:29: include arch/$(ARCH)/compile.mk
./bootable/bootloader/lk/project/msm7630_surf_nandwrite.mk 中有: MODULES += app/nandwrite./bootable/bootloader/lk/platform/msm7x30/rules.mk中有: MODULES += dev/fbcon./bootable/bootloader/lk/kernel/rules.mk 中有: MODULES += lib/libc lib/debug lib/heap./bootable/bootloader/lk/target/msm7630_surf/rules.mk 中有: MODULES += dev/keys lib/ptable 所以:
MODULES= app/nandwrite dev/fbcon dev/keys lib/debug lib/heap lib/libc lib/ptable 因?yàn)?/p>
ifeq($(BUILD_NANDWRITE), 1)APPSBOOTHDR_FILES := else out/host/linux-x86/bin/acp-fpt out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk out/target/product/msm7630_surf/nandwrite
25780 184 34000 59964 ea3c../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk arm-eabi-objcopy-O binary../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk.bin generating listing:../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk.lst generating listing:../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk.debug.lst generating symbols:../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk.sym generating size map:../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk.size make[2]:正在離開(kāi)目錄
/opt/workspace/gphone/qualcomm/eclair-M7630AABBQMLZA1150/bootable/bootloader/lk make[1]:正在離開(kāi)目錄
/opt/workspace/gphone/qualcomm/eclair-M7630AABBQMLZA1150/bootable/bootloader/lk target Prebuilt:(out/target/product/msm7630_surf/nandwrite)
make-C bootable/bootloader/lk BOOTLOADER_OUT=./out/target/product/msm7630_surf/obj/nandwrite msm7630_surf_nandwrite BUILD_NANDWRITE=1 make[2]: 正在進(jìn)入目錄
`/opt/workspace/gphone/qualcomm/eclair-M7630AABBQMLZA1150/bootable/bootloader/lk` msm7630_surf_nandwrite make-C bootable/bootloader/lk BOOTLOADER_OUT=../../.././out/target/product/msm7630_surf/obj/nandwrite msm7630_surf_nandwrite BUILD_NANDWRITE=1 ==》生成 mkheader 工具
gcc target/msm7630_surf/tools/mkheader.c-o target/msm7630_surf/tools/mkheader
$(BUILDDIR)/system-onesegment.ld: $(LOCAL_DIR)/system-onesegment.ld @echo generating $@ @$(MKDIR)$(NOECHO)sed “s/%MEMBASE%/$(MEMBASE)/;s/%MEMSIZE%/$(MEMSIZE)/” < $< > $@
generating../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/system-onesegment.ld compiling arch/arm/crt0.S compiling arch/arm/crt0.S。。compiling lib/ptable/ptable.c compiling lib/ptable/ptable.c
vim bootable/bootloader/lk/platform/msm7x30/rules.mk-----LINKER_SCRIPT += $(BUILDDIR)/system-onesegment.ld include platform/msm_shared/rules.mk-----
./build/core/product_config.mk:177:TARGET_DEVICE := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEVICE)./build/core/envsetup.mk:152:OUT_DIR := $(TOPDIR)out./build/core/envsetup.mk:159:TARGET_OUT_ROOT_release := $(OUT_DIR)/target./build/core/envsetup.mk:161:TARGET_OUT_ROOT := $(TARGET_OUT_ROOT_$(TARGET_BUILD_TYPE))./build/core/envsetup.mk:178: TARGET_PRODUCT_OUT_ROOT := $(TARGET_OUT_ROOT)/product./build/core/envsetup.mk:184:PRODUCT_OUT := $(TARGET_PRODUCT_OUT_ROOT)/$(TARGET_DEVICE)build/core/envsetup.mk:200:TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj bootable/bootloader/lk/AndroidBoot.mk:4:BOOTLOADER_OUT := $(TOP)/$(TARGET_OUT_INTERMEDIATES)/BOOTLOADER_OBJ bootable/bootloader/lk/makefile:32:BUILDDIR := $(BOOTLOADER_OUT)/build-$(PROJECT)bootable/bootloader/lk/makefile:34:OUTELF := $(BUILDDIR)/lk 所以:
TARGET_PRODUCT_OUT_ROOT=out/target/product/ PRODUCT_OUT=out/target/product/msm7630_surf/ TARGET_OUT_INTERMEDIATES=out/target/product/msm7630_surf/obj/ BOOTLOADER_OUT=out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/ 所以:
BUILDDIR=out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf 所以:
OUTELF=out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk
make-C bootable/bootloader/lk BOOTLOADER_OUT=../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ msm7630_surf
bootable/bootloader/lk/makefile OUTELF := $(BUILDDIR)/lk./bootable/bootloader/lk/make/build.mk $(OUTELF): $(ALLOBJS)$(LINKER_SCRIPT)@echo linking $@ $(NOECHO)$(LD)$(LDFLAGS)-T $(LINKER_SCRIPT)$(ALLOBJS)$(LIBGCC)-o $@
vim./bootable/bootloader/lk/AndroidBoot.mk TARGET_NANDWRITE := $(PRODUCT_OUT)/obj/nandwrite/build-$(TARGET_PRODUCT)_nandwrite/lk $(TARGET_NANDWRITE): nandwrite_clean $(NANDWRITE_OUT)@echo $(TARGET_PRODUCT)_nandwrite $(MAKE)-C bootable/bootloader/lk BOOTLOADER_OUT=../../../$(NANDWRITE_OUT)$(TARGET_PRODUCT)_nandwrite BUILD_NANDWRITE=1
BOOTLOADER_EMMC_OUT := $(TOP)/$(TARGET_OUT_INTERMEDIATES)/BOOTLOADER_EMMC_OBJ
vim./bootable/bootloader/lk/make/build.mk $(OUTELF): $(ALLOBJS)$(LINKER_SCRIPT)@echo linking $@ $(NOECHO)$(LD)$(LDFLAGS)-T $(LINKER_SCRIPT)$(ALLOBJS)$(LIBGCC)-o $@
bootable/bootloader/lk/makefile:33:OUTBIN := $(BUILDDIR)/lk.bin bootable/bootloader/lk/makefile:34:OUTELF := $(BUILDDIR)/lk
./lk/platform/msm7x30/rules.mk:23:LINKER_SCRIPT += $(BUILDDIR)/system-onesegment.ld
==》鏈接 lk linking../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk linking../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk generating image:../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk.bin generating image:../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.bin text data bss dec hex filename 29592 7388 42720 79700 13754../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk text data bss dec hex filename 25780 184 34000 59964 ea3c../../.././out/target/product/msm7630_surf/obj/nandwrite/build-msm7630_surf_nandwrite/lk
==》以 binary 格式,把文件
out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk 輸出到:
out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.bin arm-eabi-objcopy-O binary out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.bin ==》
生成...out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.lst 生成...out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.debug.lst 生成...out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.sym 生成...out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.size make[1]:正在離開(kāi)目錄 /opt/workspace/gphone/qualcomm/eclair-M7630AABBQMLZA1150/bootable/bootloader/lk ==》
make-C kernel O=../out/target/product/msm7630_surf/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=arm-eabi-msm7630-perf_defconfig make[1]: 正在進(jìn)入目錄
/opt/workspace/gphone/qualcomm/eclair-M7630AABBQMLZA1150/kernel generating symbols:../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.sym generating size map:../../.././out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.size
mkheader 從 lk.bin 生成 appsboothd.mbn 語(yǔ)法: mkheader
out/target/product/msm7630_surf/appsboot.mbn cat out/target/product/msm7630_surf/appsboothd.mbn out/target/product/msm7630_surf/obj/BOOTLOADER_OBJ/build-msm7630_surf/lk.bin > out/target/product/msm7630_surf/appsboot.mbn 刪除:out/target/product/msm7630_surf/appsboothd.mbn ==== 1.3.1.3 boot.img 生成過(guò)程解析,怎樣手動(dòng)生成 boog.img boot.img 包括兩個(gè)部分: kernel 和 ramdisk,通過(guò)命令: make out/target/product/msm7630_surf/boot.img showcommands 會(huì)自動(dòng)生成 kernel 和 ramdisk,然后把兩者合并制作成燒寫(xiě)的鏡像文件:boot.img kernel 為
out/target/product/$TARGET_PRODUCT/obj/KERNEL_OBJ/arch/arm/boot/zImage 或者 out/target/product/$TARGET_PRODUCT/kernel , kernel 是 zImage 的拷貝
編譯內(nèi)核之前必須獲取一個(gè)默認(rèn)的配置文件.config ,此配置文件可以生成,或者來(lái)自默認(rèn)配置,高通中 msm7630_surf 的
默認(rèn)配置文件名為: msm7630-perf_defconfig 在文件: vendor/qcom/msm7630_surf/AndroidBoard.mk:45 中通過(guò): KERNEL_DEFCONFIG := msm7630-perf_defconfig 進(jìn)行了指定。我們可以通過(guò)命令:
make-j3 ARCH=arm CROSS_COMPILE=arm-eabi-kernel showcommands 或者通過(guò)如下命令一步步完成:
1.獲取默認(rèn)的內(nèi)核配置并生成.config 的命令如下: make-C kernel O=../out/target/product/msm7630_surf/obj/KERNEL_OBJ ARCH=arm CROSS_COMPILE=arm-eabi-msm7630-perf_defconfig-C kernel 告訴 make 進(jìn)入 kernel 工作目錄,到其下面尋找 makefile 文件
O 內(nèi)核編譯的中間文件以及編譯結(jié)果等都存儲(chǔ)在該目錄下,此做法的好處是不會(huì)在kernel源代碼目錄下生成垃圾文件
ARCH=arm 告訴系統(tǒng)到./kernel/arch/$ARCH/configs/ 目錄下找文件 msm7630-perf_defconfig,生成的.config 保存在:
out/target/product/msm7630_surf/obj/KERNEL_OBJ/.config 2.手動(dòng)編譯內(nèi)核
make-C kernel O=../out/target/product/msm7630_surf/obj/KERNEL_OBJ/ 3.如果需要配置內(nèi)核,使用下面的命令 make kernelconfig 他首先會(huì)進(jìn)入 menuconfig 界面,用戶(hù)配置完成以后,會(huì)把修改后的配置文件$(KERNEL_OUT)/.config 更新為默認(rèn)的配置文件
cp out/target/product/msm7627_ffa/obj/KERNEL_OBJ/.config kernel/arch/arm/configs/msm7627-perf_defconfig kernel/arch/arm/configs/$(KERNEL_DEFCONFIG)
4.手動(dòng)生成 ramdisk 執(zhí)行命令
make out/target/product/msm7630_surf/ramdisk.img showcommands 會(huì)用到命令:
out/host/linux-x86/bin/mkbootfs out/target/product/msm7630_surf/root | out/host/linux-x86/bin/minigzip > out/target/product/msm7630_surf/ramdisk.img 5.手動(dòng)生成 boot.img 需要使用命令 mkbootimg ,語(yǔ)法如下: mkbootimg--kernel 內(nèi)核--ramdisk ramdisk鏡像--cmdline 命令行--base 基地址--pagesize 大小--output 輸出的boot.img ========== KERNEL=out/target/product/$TARGET_PRODUCT/kernel KERNEL=out/target/product/$TARGET_PRODUCT/obj/KERNEL_OBJ/arch/arm/boot/zImage RAMDISK=out/target/product/$TARGET_PRODUCT/ramdisk.img CMDLINE=“console=ttyDCC0 androidboot.hardware=qcom” BASE=0x00200000 PAGESIZE=4096 OUTPUT=out/target/product/$TARGET_PRODUCT/boot.img out/host/linux-x86/bin/mkbootimg--kernel $KERNEL--ramdisk $RAMDISK--cmdline “$CMDLINE”--base $BASE--pagesize $PAGESIZE--output $OUTPUT =========================================
編譯 bootloader(appsboot.mbn),nandwrite 生成過(guò)程解析./vendor/qcom/msm7630_surf/AndroidBoard.mk:25: include bootable/bootloader/lk/AndroidBoot.mk =================== 因?yàn)橛校?/p>
bootable/bootloader/lk/AndroidBoot.mk:3: TARGET_BOOTLOADER := $(PRODUCT_OUT)/appsboot.mbn INSTALLED_BOOTLOADER_TARGET := $(PRODUCT_OUT)/bootloader file := $(INSTALLED_BOOTLOADER_TARGET)
第四篇:Android平臺(tái)QQ空間概念視覺(jué)稿
一、前期的準(zhǔn)備
制作這次風(fēng)格稿的時(shí)候,問(wèn)了身邊的一些使用QQ空間的朋友,問(wèn)他們是如何理解QQ空間的?希望的QQ空間是什么樣子?得到了N多的答案,其中的一些關(guān)鍵字我摘錄了出來(lái):“好玩些、讀寫(xiě)方便、速度快操作流暢、酷一點(diǎn)、可以看到更多和PC用戶(hù)的內(nèi)容、讓我們來(lái)選擇自己喜歡操作方式、精致漂亮、要有QQ空間自身的特點(diǎn)?”
在看完這些朋友們給的這些信息之后就到了揣摩消化分析理解體現(xiàn)階段,同時(shí)希望可以在風(fēng)格上嘗試一個(gè)和以往的版本不同的地方,既可以體現(xiàn)出QQ空間自身的特點(diǎn)又可以讓用戶(hù)耳目一新,接下來(lái)就是草圖和素材收集階段,下面就是我對(duì)QQ空間的一些認(rèn)識(shí)通過(guò)圖片表現(xiàn)一下吧:
你能在下面的視覺(jué)稿中發(fā)現(xiàn)這些圖片的影子。
二、設(shè)計(jì)展現(xiàn)階段:
用戶(hù)進(jìn)入登錄界面后,在未輸入賬號(hào)的情況下界面中l(wèi)ogo置灰顯示,用戶(hù)點(diǎn)擊賬號(hào)輸入框后logo變亮(在視覺(jué)上是從不可操作變化為可操作即可點(diǎn)擊狀態(tài)),當(dāng)用戶(hù)輸入密碼后,點(diǎn)擊logo進(jìn)行登錄。
進(jìn)入個(gè)人中心大家可以看到這里界面的tab欄是做成隱藏狀態(tài)的,只露出一個(gè)可以點(diǎn)擊的向上按鈕,而且界面中的title和tab都設(shè)計(jì)成了半透明效果,這樣設(shè)計(jì)第一為了讓用戶(hù)在視覺(jué)上擁有更大的閱讀空間,第二也是為了讓用戶(hù)有一個(gè)愉快的操作體驗(yàn),其實(shí)用戶(hù)在進(jìn)入個(gè)人中心后,他的觀(guān)注點(diǎn)會(huì)是個(gè)人中心里的各種操作,包括寫(xiě)心情、拍照片、查看留言評(píng)論、回復(fù)等等,只有當(dāng)觀(guān)注點(diǎn)改變的時(shí)候(目的性改變變強(qiáng))比如需要進(jìn)入我的主頁(yè)查看自己相關(guān)的內(nèi)容、去玩一些應(yīng)用這個(gè)時(shí)候用戶(hù)才會(huì)去切換相應(yīng)界面,這也是把tab欄設(shè)計(jì)成隱藏狀態(tài)的一個(gè)原因。
在界面中為了讓用戶(hù)很輕易的識(shí)別出每條FEED的屬性設(shè)計(jì)了一些對(duì)應(yīng)心情、日志、評(píng)論、相片、贊等一些圖標(biāo)。
用戶(hù)進(jìn)行頻道切換時(shí)點(diǎn)擊或向上拖動(dòng)下面的向上按鈕,在觸覺(jué)上會(huì)有震動(dòng)反饋,向上的按鈕變大,從視覺(jué)上看像是被手指壓住拖動(dòng)。
這時(shí)轉(zhuǎn)盤(pán)形的tab欄從下方被喚出,當(dāng)前為個(gè)人中心界面,所以對(duì)應(yīng)在tab欄上的個(gè)人中心的圖標(biāo)是被激活的,在對(duì)tab欄圖標(biāo)設(shè)計(jì)處理的時(shí)候,均采用了擬物化的設(shè)計(jì)。
對(duì)tab欄操作的時(shí)候,用戶(hù)可以用2種方式進(jìn)行頻道間的切換,點(diǎn)擊相應(yīng)的圖標(biāo)或拖動(dòng)環(huán)形轉(zhuǎn)盤(pán)便可切換到對(duì)應(yīng)的頻道中,這樣在保證快速切換的同時(shí)也增加操作的趣味性,每個(gè)頻道對(duì)應(yīng)的icon移動(dòng)中間位置被激活(效果為淡入淡出效果),同時(shí)頻道進(jìn)行切換,下面2張圖分別代表手指觸控圓盤(pán)進(jìn)行左右滑動(dòng)時(shí)tab欄的變化:
下面是個(gè)人主頁(yè)、好友、應(yīng)用界面
個(gè)人主頁(yè)界面
好友界面
應(yīng)用界面 三、一些細(xì)節(jié)和擴(kuò)展性
1、考慮到用戶(hù)的使用習(xí)慣和操作方式的不同,在這里把主動(dòng)權(quán)交還給用戶(hù),提供3種操作方式讓用戶(hù)自己定義,默認(rèn)情況下的頻道切換為從下方喚出,用戶(hù)可以在設(shè)置界面中調(diào)整tab欄的操作方式。
2、目前的tab欄上有5個(gè)頻道圖標(biāo),考慮Qzone的強(qiáng)大整合性不能排除以后繼續(xù)增加頻道的可能,所以采用轉(zhuǎn)盤(pán)式的設(shè)計(jì)方式,也就是這個(gè)風(fēng)格稿的主題之一——玩轉(zhuǎn)Qzone。
3、在輸入賬號(hào)密碼驗(yàn)證的時(shí)候,系統(tǒng)會(huì)自動(dòng)判定男女用戶(hù),如果是女性用戶(hù)登錄后系統(tǒng)會(huì)自動(dòng)選擇適合女性的皮膚樣式,對(duì)應(yīng)的圖標(biāo)也會(huì)發(fā)生改變,比如個(gè)人中心的圖標(biāo)就會(huì)變成一個(gè)女孩的ICON。
在產(chǎn)品設(shè)計(jì)中用戶(hù)需求和具體的情景使用感受,也是一個(gè)設(shè)計(jì)師要去全面考慮的。(本文出自Tencent WSD Blog,轉(zhuǎn)載時(shí)請(qǐng)注明出處)
第五篇:Android 個(gè)人總結(jié)
Android 個(gè)人總結(jié)
通過(guò)本學(xué)期的的學(xué)習(xí),我知道了android是由google開(kāi)發(fā)的一款手機(jī)平臺(tái),android的基本架構(gòu)是基于linux內(nèi)核,由內(nèi)核向外的反別為庫(kù)和應(yīng)用架構(gòu),然后就是我們手機(jī)上的可視化應(yīng)用了,android是一個(gè)系統(tǒng),但是并非是操作系統(tǒng)。
在開(kāi)發(fā)之前,我們首先要搭建一個(gè)開(kāi)發(fā)環(huán)境,用的是java編程的eclipse,我們從網(wǎng)上下載sdk包,里面包含了android開(kāi)發(fā)常用的工具,android既是手機(jī)操作系統(tǒng),也是跨平臺(tái)(windows,mac,linux)的開(kāi)發(fā)工具,雖然是使用linux為核心的平臺(tái),但是你可以在很多地方感覺(jué)到類(lèi)似做網(wǎng)頁(yè)開(kāi)發(fā)的感覺(jué)。具有本身獨(dú)特的進(jìn)程管理方式,完整的上網(wǎng)功能,搭配了google地圖,Gmail等服務(wù),即使像我們這些尚未入門(mén)的開(kāi)發(fā)者也能開(kāi)發(fā)出自己理想的應(yīng)用程序來(lái)。
剛開(kāi)始的時(shí)候,得知android開(kāi)發(fā)需要使用java語(yǔ)言心里了小小的畏懼,但隨著學(xué)習(xí)的漸漸深入就會(huì)發(fā)現(xiàn)android平臺(tái)只是使用了java的語(yǔ)法而已,所以,即使我們不具備java語(yǔ)言開(kāi)發(fā)的基礎(chǔ),也可以放心地加入到android開(kāi)發(fā)當(dāng)中來(lái)。
第一節(jié)課,老師向我們?cè)敿?xì)介紹了開(kāi)發(fā)界面右邊窗口的內(nèi)容,首先是src目錄,里面包含了我們開(kāi)發(fā)界面的java文件以及各種我們創(chuàng)建的類(lèi)組成的開(kāi)發(fā)包。然后是gen目錄,里面涵蓋的是系統(tǒng)的類(lèi)文件(如R.java,Buidconfig.java)與android系統(tǒng)的依賴(lài)文件(Android Dependencies)。再下來(lái)是assets(用戶(hù)資源文件),里面文件的訪(fǎng)問(wèn)是通過(guò)文件路徑的形式調(diào)用。Bin文件里面包括了res資源文件,android項(xiàng)目配置文件androidmanifest以及我們開(kāi)發(fā)之后產(chǎn)生的后綴為.apk的應(yīng)用程序文件。Res是系統(tǒng)資源目錄,我們要用到得圖片資源,顏色資源,字符串資源都在里面。一般的開(kāi)發(fā)都要用到界面文件也包含在里面。
Eclipse具有史上超豪華的手機(jī)控件,包括常用的文本文件,文本框,按鈕,進(jìn)度條等,還有特殊形式的email,gmail文本框,在開(kāi)發(fā)過(guò)程當(dāng)中,很多控件都是以拖拉的形式拖拽到開(kāi)發(fā)界面上,大大地減少了我們開(kāi)發(fā)時(shí)候的工作量,在配置文件中,我們可以添加各種各樣的系統(tǒng)動(dòng)作,以及系統(tǒng)服務(wù),還可以建立用戶(hù)自己的文件庫(kù)。
當(dāng)我們開(kāi)發(fā)完成的時(shí)候,就可以運(yùn)行手機(jī)模擬器,在上面,我們可以像操作當(dāng)今市場(chǎng)上最流行的android手機(jī)一樣操作我們的模擬器,可視化的界面可以我們隨心所欲地下載我們開(kāi)發(fā)的應(yīng)用程序到模擬器上,就可以實(shí)現(xiàn)步步跟進(jìn),想要修改哪里就一目了然了,模擬器上人性化的設(shè)計(jì)界面大大方便了用戶(hù)與機(jī)器之間的交流。如果我們擁有一部android系統(tǒng)的手機(jī)的話(huà),就可以把自己開(kāi)發(fā)的應(yīng)用程序下到手機(jī)上,看到自己的成果,頓生成就感,真的很有樂(lè)趣。也加大了我對(duì)學(xué)習(xí)android的信心。
總體來(lái)說(shuō),學(xué)習(xí)android就要不怕困難,迎難而上。Android不久可以滿(mǎn)足自己的成就感,還可以在未來(lái)的生活中找到自己理想的工作。用別人準(zhǔn)備好的各種類(lèi),包來(lái)開(kāi)發(fā)出自己獨(dú)特風(fēng)格的應(yīng)用程序,既省時(shí)又省力,何樂(lè)而不為呢。在這里,要感謝曾老師對(duì)我的栽培和關(guān)懷,他教給了我知識(shí),使我在學(xué)習(xí)的時(shí)候少走了很多的彎路,也增加了我對(duì)未來(lái)工作的信心。