久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

【黑馬程序員】軟件項目管理(一)(5篇)

時間:2019-05-13 18:54:17下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《【黑馬程序員】軟件項目管理(一)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《【黑馬程序員】軟件項目管理(一)》。

第一篇:【黑馬程序員】軟件項目管理(一)

【黑馬程序員】軟件項目管理

(一)咱們現在是在學習階段,慢慢的接觸項目這個概念。那么項目是什么?

一個項目的組成,還有期生命周期,項目經理如何管理項目,項目如何分解,每個階段的產出,都是什么,我們在進入工作前,可以提前了解一下,就能大概體會項目經理的工作內容,也能體諒一個項目所帶來的壓力。

首先軟件項目管理,什么是項目?什么是軟件項目? 項目是唯一的,臨時的,即在一定的時間內完成。

具體定義:項目是為了創造一個唯一的產品或提供一個唯一的服務而進行的臨時性的努力。項目的特征: 項目有明確的目標

項目之間的活動具有相關性 限定的周期 有獨特性

資源成本的約束性(預算)

項目的不確定性(需求變更、人員變動。。)

說了那么多項目的特征,那么軟件項目又有什么特別的嗎?

軟件項目是一個邏輯實體,相互之間的作用更強,變更會隨時發生,以及更深的漸進聯系。正是由于軟件項目的變更性很強,所以為了確保軟件項目的成功,提出了要對軟件項目進行管理。

項目管理的定義:項目管理是一系列的伴隨著項目的進行而進行的、目的是為了確保項目能達到期望結果的一系列管理行為。

軟件項目管理與傳統的項目管理之間的比較區別:軟件項目的管理除了要對軟件項目深入了解,掌握項目管理的知識,還要有相應的經驗和技巧

了解了項目管理,現在就來看看必不可少的項目管理知識體系(pmbok)

十大管理:范圍管理、時間管理、費用管理、質量管理、人員管理、溝通管理、風險管理、采購管理、集成管理、利益相關者管理 采鑒自傳統項目管理,過程的管理如流水線生產生產的產品都是一樣的,不同的過程造就不同的產品,那么對于軟件項目管理來說,不同的過程一樣產生不同的產品,不同的過程造就的產品質量也就不同,那么管理好了過程產品質量也就會相應提升。這里給出過程管理的定義:過程管理就是對過程進行管理,目的是讓過程能夠被共享、復用,并得到持續的改進。

軟件過程管理的過程組:初始、計劃、控制、執行、結束

于是我們得到軟件項目管理的過程:初始、計劃、執行控制、結束

從項目初始開始:包括項目確立和生存期

項目確立分成 項目立項、項目招投標、項目授權

項目立項:確定項目的目標、時間、資源、資金,關鍵在于得到項目發起人的認可 一個軟件項目的立項開始于軟件項目的啟動,只有立項了的需求才會得到滿足

項目招投標:在確認決策為購買時,便要啟動項目招投標,過程為甲方招標書定義、乙方項目分析、招標與競爭、合同簽署

黑馬程序員成都中心 編著

項目授權:項目章程(project charter)表示項目存在

項目授權后項目管理便要開始履行職責 包括:開發計劃、組織實施、項目控制

案例總結:某公司發出甲方招標書,然后一些科技公司開始對該招標書進行項目分析,然后向甲方公司發送投標書,由甲方進行選擇,擬定合同并簽訂,中標后乙方收到項目授權書,項目便正式成立

項目成立后便要選擇相應的完成項目的策略,即選擇項目生存期模型 軟件項目生存周期

定義:描述了開發的主要階段、定義每個階段完成的過程和活動、確認每個階段完成的輸入和輸出

傳統生存期模型:預期設計開發的過程

瀑布模型:單向,嚴格要求項目的步驟,即需求分析、設計、編碼實施、測試、維護,管理方便但是不能滿足需求變更

V模型:瀑布模型的變種,仍舊為單向執行,對項目需求、方案要求非常明確,以及對安全有特殊要求的項目。

原型:對變化的需求可以進行相應的應對,在需求分析后構造原型,然后對原型進行評估,再構造原型再評估,直到確定項目需求,然后設計最終系統,最后實現。增量模型:需求基本明確,可能發生變化,對于市場和用戶需要逐步了解,需要一步步實施。以增量的方式一步步完善系統功能。

漸進式模型:漸進式前進、階段性提交,優點是階段性提交一個可運行的產品,關鍵的功能更早出現,早起預警問題,避免缺陷蔓延,階段性完成可以降低完成估計錯誤。敏捷生存期模型(agile development):自適應的過程 敏捷宣言:

個體和交互勝過過程和工具

可以工作的軟件勝過面面俱到的文檔 客戶合作勝過合同談判 響應變化勝過遵循計劃

軟件需求管理

軟件需求定義:用戶對軟件功能和性能的要求

軟件需求管理過程:需求獲取、需求分析、需求規格編寫、需求驗證、需求變更

變更管理:確定需求變更控制過程、確立變更控制委員會(SCCB)、進行需求變更影響分析、跟蹤所有受需求變更影響的工作產品、建立需求基準版本和需求控制版本文檔、維護需求變更的歷史記錄、跟蹤每項需求的狀態、衡量需求穩定性 軟件建模的基本方法:

原型方法:需求分析、原型開發、原型評價

結構化分析法 :面向數據流的方法、自頂向下的分析方法、根據軟件內部數據傳遞、交換的關系進行分析的,包括的技術有數據流圖、數據字典、系統流程圖

面向對象的用例分析:基于面向對象的情景分析方法、從用戶角度出發考慮的功能需求、用例是系統向用戶提供一個有價值的結果的某項功能 uml需求視圖:用例視圖、順序圖、狀態圖、活動圖

功能列表法:將需求各功能以列表的形式列出,可以配合用例分析方法,對用例進行展開描述。

黑馬程序員成都中心 編著

敏捷方法:對需求采用漸進明晰的方法進行描述

在敏捷方法中,用戶需求被描述成一個個story card,有以下基本格式:as a ,i want ,so that 判斷一個user story 是否是一個好的story的標準

軟件項目任務分解

任務分解是項目管理的基礎

任務分解過程定義:將一個項目分解為更多的工作細目或子項目,使項目變得更小、更易管理、更易操作

WBS任務分解結構:wbs是對項目由粗到細的分解過程,面向交付成果的,wbs組織并定義了整個項目范圍

工作包是wbs最低層次的可交付成果 工作包應當由唯一主體負責 任務分解方法:

類比:有相同或相似的周期的項目,可采用類比的方法 模板參照:進行項目分解的時候,有些項目可以參照模板 自上而下:對項目整體有比較詳細的了解

自下而上:任務沒有非常詳細的邏輯關系,想到什么寫什么,然后按一定邏輯生成 任務分解步驟:

確認并分解項目的組成要素(WBS編號)確定分解標準 確定分解是否詳細

確定項目交付成果(可以編制WBS字典)驗證分解的正確性

檢驗分解結果的標準:

最底層的要素是否是實現目標的充分必要條件 最底層要素是否有重復的 每個要素是否清晰完整定義

最底層要素是否有定義清晰的責任人 是否可以進行成本估算和進度安排

--暫時就說到這里,這里的一切標準都是由各種辦法來進行的。跟我們所接觸的其他工作都不一樣。希望對大家以后的工作有一定的幫助。

黑馬程序員成都中心 編著

第二篇:黑馬程序員android開發筆記(一)

01、什么是3G 02、android系統簡介 03、android背景介紹 04、android的framewor簡介 05、兩種虛擬機的比較 06、sdk的下載以及簡介 07、創建android模擬器 08、ddms簡介

09、platform-tools的簡介及常見adb指令

10、android項目的目錄結構

11、android下apk安裝的過程

12、常見的adb指令介紹

13、創建模擬器遇到的常見錯誤

14、電話撥號器

15、點擊事件的四種寫法

16、短信發送器

17、相對布局&單位介紹

18、現形布局&布局的組合

19、表格布局&絕對布局 20、幀布局

21、測試相關概念

22、android下junit測試框架配置

23、logcat簡介

24、保存文件到手機內存

25、android下文件訪問的權限

26、保存文件到SD卡中

27、分析setting源代碼獲取SD卡大小

28、_sharePreference入門

29、xml文件的序列化 30、采用pull解析xml文件

31、采用斷電調試的方法觀察pull解析的的流程

32、android下創建一個sqllite數據庫

33、sql語句實現數據庫的增刪改查

34、系統api實現數據庫的增刪改查&Sqlite3工具的使用

35、數據庫的事物

36、listView入門

37、采用layoutInflater打氣筒創建一個view對象

38、采用數據適配器ArryAdapter

39、常用數據適配器simpleAdapter 40、數據適配器總結

41、內容提供者簡介

42、內容提供者的實現

43、短信的備份

44、插入一條記錄到系統短信應用

45、內容觀察者

46、獲取系統的聯系人信息

47、保存聯系人到系統通訊錄

48、讀取聯系人的一個小細節

49、網絡圖片查看器

50、anr產生的原理&如何避免

51、android消息機制入門

52、網絡html查看器

53、字符亂碼問題的處理

54、采用get方式提交數據到服務器

55、采用post方式提交數據到服務器

56、提交數據到服務器中文亂碼問題的處理

57、采用httpclient提交數據到服務器

58、異步http框架簡介&實現原理

59、異步http框架提交數據到服務器 60、上傳文件到服務器

61、smartimageview&常見開源代碼 62、多線程下載的原理 63、多線程斷點下載的原理

64、多線程java代碼移植到android 65、多線程下載文本頁面的更新 66、顯示意圖激活另一個activity 67、隱式意圖激活另一個activity 68、隱式意圖的配置

69、隱式意圖和顯示意圖的使用場景 70、在不同activity之間數據傳遞 71、activity的聲明周期 72、activity的啟動模式

73、activity橫豎屏切換的聲明周期 74、開啟新的activity獲取他的返回值 75、請求碼和結果碼的作用 76、利用廣播實現ip撥號 77、短信竊聽器

78、自定義廣播時間&發送自定義廣播&廣播接受者優先級 79、采用服務執行長期后臺操作 80、采用服務竊聽電話&服務的聲明周期 81、android進程優先級&為什么使用服務 82、綁定方式開啟服務&調用服務的方法 83、服務的聲明周期(混合開啟 84、采用aidl綁定遠程服務

85、代碼注冊廣播接受者&利用廣播調用服務的辦法 86、加載大圖片到內存 87、獲取圖片exif信息 88、從gallery獲取圖片 89、圖片畫畫板 90、扒開美女衣服 91、圖片的縮放 92、圖片的旋轉

93、圖片的平移&鏡面&倒影效果 94、圖片的合成 95、圖片的顏色處理 96、多媒體播放api簡介 97、人臉識別

98、mediaplayer的生命周期 99、soundpoo簡介

100、sufaceview的生命周期 101、播放在線視頻

102、視頻播放器進度的處理 103、調用系統照相機拍照和錄像 104、采用camera拍照 105、常見對話框 106、notification入門 107、菜單

108、android下的樣式 109、android下的主題

110、代碼編寫ui 111、html創建ui 112、幀動畫

113、代碼創建創建的tween動畫 114、xml文件定義動畫 115、傳感器簡介 116、117、殺死進程 118、apk的安裝 119、應用程序的反編譯 120、動態創建fragment 121、用fragment創建一個選項卡 122、fragment的向下兼容性 123、fragment的生命周期 124、fragment之間的通訊 125、應用程序國際化

04、android的framewor簡介

Wap:wait and play Wireless Makeup Language(WML)精簡的html語言 Applications:android自帶的基本上層應用 Aplication framework:應用程序框架 Librarics: Linux lernel:

05、兩種虛擬機的比較

編譯后文件格式:

jvm:.java->.class->.jar dalvik vm:.java->.dex->.odex 基于的架構:

jvm:基于棧的架構

dalvik vm:基于寄存器的架構

Cpu直接訪問寄存器因此dalvik虛擬機的效率比jvm高

06、sdk的下載以及簡介

->獲取sdk工具包(sdk:standard develope kits)->ADT(android develop tools,實際上是eclipse的插件)SDK具體內容

Android 4.2.2(API16)

->SDK Plateform:開發時使用到的jar包->Samples for sdk:

->ARM EABI V7a System Image:模擬器運行時的鏡像->Intel n86 Aton System:模擬器運行時的鏡像->MIPS System Image:模擬器運行時的鏡像->google APIs:google提供的jar包,可以直接使用google提供的一些API->source for android SDK:SDK全部的源代碼 Extrals:

->tools:開發的工具

->support library:實現高版本的android向下的兼容->google Admed Ads SDK:gongle提供的廣告插件->Analyties App Irackiong SDK:應用的用戶分析->cloud message:云消息

->gongle play service:收費服務

->google USB Driver:真實的設備驅動

開發時:基于4.0,兼容2.2、2.3.3

07、創建android模擬器

avd:android virture developer VGA:480*640(電視的標準分辨率)QVGA:240*320(四分之一)HVGA:320*480(一半)WVGA:480*800(width)FWVGA:480*854(更寬)

08、ddms簡介

ddms:模擬器不支持中文,因此發送中文會顯示不出來

09、platform-tools的簡介及常見adb指令

Android調試橋:內部實現就是socket讓兩個系統之間實現數據交互

->reset adb:模擬器找不到時候可以重啟->adb device:列出所有的連接的設備->adb kill-server:殺死adb調試橋->adb start-server 啟動adb調試橋 dx.bat:將.class文件打包

10、android項目的目錄結構

一:SDK的目錄結構

->Samples->Api demo:根據API demo(模擬器上面可以看見)的效果可以在sample中看見

相應的代碼

->Source:jar包所有的sdk源代碼都在這個文件夾里->SystemImage:系統鏡像

->temp:下載更新臨時存儲的文件夾,一般是空的->tools:emulater.ext 不同版本的模擬器

二:New Android Application->theme:留給以后作為擴展,現在并沒有太大的作用->target SDK:一般選擇高版本,因為高版本對下兼容

->mark project as a library:一般不選擇,意思是將這個項目提供一個

jar包供別人使用 三:文件夾目錄

.setting:設置目錄

assets:資產目錄,存放一些文件,這些文件會被原封不動打包到應用程序的 apk中

bin:

gen:自動生成的目錄

->builderConfig.java:生成的配置信息->R.java: Android 4.1.2->android.jar開發環境,jar包

可以在properties中修改,jar包就是SDK

011、Android下apk的安裝過程

一、Android安裝過程分析:

->setContentView:甚至view的對象,把里面的xml文件加載到

->在project中選擇build automaticly會自動把文件生成字節碼文件,.class $代表的class文件生成的是內部類->dex.bat文件會把.class文件生成.dex文件

->apk壓縮文件解壓內部內容

->META-INF: 應用程序的簽名

eclipse的調試簽名文件

->res:資源文件

->classes.dex:class文件

->resources.arsc:資源ID映射

->android軟件安裝的過程:

->拷貝xxx.apk帶/data/app/xxx-1.apk->在/data/data目錄下創建一個文件夾,文件夾名稱當前應用程序的報名

012、常見adb指令

前提:

->設備連接上電腦而且驅動安裝正常,如果安裝不正常的話,會有黃色的問號顯示;

->設備上打開USB調試;

指令:

->adb device(如果啟動發現這個程序沒有安裝會自動安裝)->adb kill-server->adb start-server->adb uninstall <包名>->adb-s emulator-5554 install c:usersadministratorhello.apk 如果有多個設備的話,如果不指定安裝的是哪個設備程序會報錯->adb push haha.prop /sdcard/haha.txt 將文件移到

(360管家,豌豆莢之類的軟件他們也是用的adb指令,倘若電腦上裝這些軟件的話,會因為兩個adb指令搶端口號而掛掉)(adb版本之間兼容不是很好,經常報錯可以考慮下版本的問題)->adb shell:遠程連接到了android的linux終端

ls:顯示文件夾

ps:顯示正在運行的程序 ping:網絡連通性

013、創建模擬器遇到的常見錯誤

->路徑最好不要有中文:

->應用安裝不上,或者安裝模擬器的時候開啟一個新的模擬器:

可能是模擬器的資源被占用,模擬器在運行的時候其實占用著硬盤上面的一個文件,這個文件位于工作空間.android/avd/iphone.avd 里面會有鏡像文件,當一個模擬器開啟起來了,就給你創建一個文件夾.knock的文件夾,代表著這個模擬器被鎖定了,如果把模擬器關掉,就沒有程序占據這幾個鏡像資源了,那么這幾個程序就會被自動刪除。通常情況下不會出問題,開啟時候創建文件,關閉時關閉文件,但是當電腦出現不正常狀態時:比如藍屏,停電關機時候這些資源還沒來得及刪除,模擬器就關閉了,因此開啟時這些資源仍在,程序默認模擬器被占用,因此會重新開啟一個模擬器。

->模擬器沒有信號:

模擬器用socket橋接在電腦上

終結解決方案是給電腦連上網,分配一個IP->常見命令操作:

14、電話撥號器

->新建文件

->界面設置:文本框、點擊按鈕

->:一旦獲得焦點,會立刻彈出,輸入文本的軟鍵盤->ctrl+x刪除->ctrl+1提示

->設置點擊事件:找到空間,然后設置點擊事件,再點擊事件里面獲得了另外一

個空間的數據,激活一個intent->獲得權限:清單文件中添加uses permision

15、點擊事件的四種寫法

->電話撥號器的優化:

每次撥打電話都會執行的操作是:查找控件,然后找到控件的文本,撥打電

話。其實每次撥打電話文本控件已經創建好了沒有必要每次查找按鈕之后再 查詢控件。

package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(new MyListener());}

private class MyListener implementsandroid.view.View.OnClickListener{

@Override

public void onClick(View arg0){

String number = et_number.getText().toString().trim();//去除回車和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “號碼不能為空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse(“tel:”+number));

startActivity(intent);

}

}

@Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;} }

->

1、點擊事件的四種寫法:

->給按鈕注冊點擊事件:創建一個內部類定義點擊事件。具體代碼見上

button.setOnClickListener(new MyListener());

->

2、采用匿名內部類創建點擊事件:

button.setOnClickListener(new OnClickListener()){

package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View arg0){

// TODO 自動生成的方法存根

callPhone();

}

});}

@Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

private void callPhone(){

String number = et_number.getText().toString().trim();//去除回車和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “號碼不能為空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse(“tel:”+number));

startActivity(intent);} } }

->

3、如果有很多的按鈕點擊事件,建議用這種方式:讓Activity實現點擊 事件的接口,每個按鈕點擊事件都設置成this,讓該類實現 OnClickListener然后進行判斷。package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);button.setOnClickListener(this);}

@Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

private void callPhone(){

String number = et_number.getText().toString().trim();//去除回車和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “號碼不能為空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(intent.ACTION_CALL);

intent.setData(Uri.parse(“tel:”+number));

startActivity(intent);}

@Override public void onClick(View v){

// TODO 自動生成的方法存根

switch(v.getId()){

case R.id.bt_dial:

callPhone();

break;

} } }->

4、在布局文件中綁定一個點擊的方法,如果點擊按鈕就會調用這個方法,通

過反射技術試圖調用這個方法

布局文件中設置: package cn.wqrt.mobile;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity {

private EditText et_number;@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =(Button)findViewById(R.id.bt_dial);et_number =(EditText)findViewById(R.id.et_number);

}

@Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}

public void dialButtonClick(View v){ callPhone();}

private void callPhone(){

String number = et_number.getText().toString().trim();//去除回車和空格

if(TextUtils.isEmpty(number)){

Toast.makeText(MainActivity.this, “號碼不能為空”, Toast.LENGTH_SHORT).show();

return;

}

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse(“tel:”+number));

startActivity(intent);} }

16、短信發送器

->界面的設計:兩個large Text,一個Button

android:textColor 設置字體顏色

android:singleLine=“true” 設置是否是單行

android:lines=“5” 設置行數

windows下面的顏色是GBR,而android下需要輸入的格式確實

RGB,所以需要轉換

adb默認設置time out為5秒->內容設計:按鈕-文本->判斷->發送

導包的時候千萬別導到gsm包,否則會顯示過時;

發送沒有歷史記錄 package com.example.sms;

import java.util.ArrayList;

import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.text.TextUtils;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

private EditText et_number;private EditText et_content;

@Override protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button =(Button)findViewById(R.id.bt_send);

et_number =(EditText)findViewById(R.id.et_number);

et_content =(EditText)findViewById(R.id.et_content);

button.setOnClickListener(this);}

@Override public boolean onCreateOptionsMenu(Menu menu){

// Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);

return true;}

@Override public void onClick(View v){

// TODO 自動生成的方法存根

switch(v.getId()){

case R.id.bt_send:

String number = et_number.getText().toString().trim();

String content = et_content.getText().toString().trim();

if(TextUtils.isEmpty(number)||TextUtils.isEmpty(content)){

Toast.makeText(this, “號碼或者內容不能為空”,Toast.LENGTH_SHORT).show();

return;

}else{

SmsManager smsManager = SmsManager.getDefault();

ArrayList contents = smsManager.divideMessage(content);

for(String str:contents){

smsManager.sendTextMessage(number, null, str, null, null);

}

}

} } }

17、相對布局&單位介紹

->布局說明:

->同級控件:

android:layout_toRightOf=“" android:layout_toLeftOf=”“ android:layout_below=”' android:layout_above=“" android:layout_maginBottom=”“

->相對父控件:

android:ayout_centerInParent=”“ android: layout_centerHorizontal=”“ android:layout_centerVertical=”“ android:layout_alignParentBottom=”“ android:layout_alignParentRight=”“->對齊方式:

->文本顏色:#00000000~#ff000000(argb)文字的透明度->單位介紹:

dp也就是dip:device independent pixels(設備獨立像素),是一種與密度無關的像素單位,在每英寸160點的屏幕上,1dp = 1px。不同設備有不同的顯示效果,這個和設備硬件有關,一般我們為了支持WVGA、HVGA和QVGA 推薦使用這個,不依賴像素

1.

下載【黑馬程序員】軟件項目管理(一)(5篇)word格式文檔
下載【黑馬程序員】軟件項目管理(一)(5篇).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    黑馬程序員視頻總結

    面向對象:面向對象是相對于面向過程而言的。面向過程強調的是功能,面向對象將功能封裝進對象,強調的是具有功能的對象。 類是對現實生活的描述。對象是一類事物實實在在存在的......

    黑馬程序員——IO(Input Output)流總結(一)

    IO(Input Output)流總結(一) IO流是處理數據之間數據傳輸的。 Java對數據的操作是通過流的方式。 Java中用于操作IO流的對象都放在java.io包中。 流的分類:按照操作數據分為:字符......

    軟件項目管理

    軟件項目經理所需的素質 許多人都以為項目經理總是與“理想與光榮”相伴的,其實作為一個有志于改進中國軟件開發流程的項目經理來說,他們承擔的更多的是“艱辛與痛苦”。 一個......

    淺談軟件項目管理范文

    淺談軟件項目管理1. 軟件項目管理的概念軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,通過計劃、組織、控制等一系列活動,合理地配置和使用各種資源,......

    黑馬程序員:AJAX入門系列(★)

    黑馬程序員:AJAX入門系列 什么是AJAX? AJAX是”Asynchronous JavaScript and XML”的縮寫(異步的JavaScript和XML),即一種實現無頁面刷新獲取服務器數據的混合技術。 XML是什么......

    【黑馬程序員】Java基礎總結

    【黑馬程序員】Java基礎總結 黑馬程序員的javaEE課程主要分為2個部分:java基礎+java就業。今天就簡單的給大家總結一下咱們java基礎的知識。 注:Java采用Unicode符號集,每個......

    黑馬程序員:Java集合簡單總結

    黑馬程序員:Java集合簡單總結 在Java語言中,學好集合是非常重要的,下面簡單的對集合進行總結,以便大家學習,有問題再相互交流。 集合框架圖 在集合框架圖中可以看出,Collection接......

    軟件項目管理工作總結

    軟件項目管理工作總結軟件項目管理這門課程是我們軟件工程專業學生的一門重要的課程,這門課程的開設必有其重要性。軟件項目管理的提出是在20世紀70年代中期的美國。由于開發......

主站蜘蛛池模板: 亚洲熟妇无码av在线播放| 少妇扒开腿让我爽了一夜| 狠狠躁天天躁无码中文字幕| 免费观看又色又爽又湿的软件| 成人免费无码不卡毛片| 久久国产热精品波多野结衣av| 女邻居丰满的奶水| 色欲久久久天天天综合网| 超碰97人人模人人爽人人喊| 日本在线视频www鲁啊鲁| 久久午夜夜伦鲁鲁片免费无码影视| 国产精品久久久久9999爆乳| 曰韩少妇内射免费播放| 男ji大巴进入女人的视频小说| 国产主播一区二区三区在线观看| 成年女人色毛片| 男女扒开双腿猛进入免费看污| 亚洲一二区制服无码中字| 成人精品天堂一区二区三区| 日韩在线永久免费播放| 亚洲欧美国产另类视频| 亚洲国产精品18久久久久久| 拍国产乱人伦偷精品视频| 新妺妺窝人体色7777太粗| 国产va免费精品观看精品| 成人免费看吃奶视频网站| 欧美熟妇性xxxx交潮喷| 亚洲不卡av一区二区无码不卡| 真实的国产乱xxxx在线| 失禁潮痉挛潮喷av在线无码| 久久天堂综合亚洲伊人hd妓女| 无码日韩人妻av一区二区三区| 亚洲国产精品国自产拍av| 黑人入室粗暴人妻中出| 日本乱码伦午夜福利在线| 一区三区在线专区在线| 国产免费拔擦拔擦8x高清在线人| 亚洲欧美国产精品专区久久| 中文无码人妻有码人妻中文字幕| 国产情侣2020免费视频| 国产亚洲精品久久久久久大师|