Android項目的目錄結構
- Activity:應用被打開時顯示的界面
- src:項目代碼
- R.java:項目中所有資源文件的資源id
- Android.jar:Android的jar包,導入此包方可使用Android的api
- libs:導入第三方jar包
- assets:存放資源文件,比方說mp3、視頻文件
- bin:存放編譯打包后的文件
- res:存放資源文件,存放在此文件夾下的所有資源文件都會生成資源id
- drawable:存放圖片資源
- layout:存放布局文件,把布局文件通過資源id指定給activity,界面就會顯示出該布局文件定義的布局
- menu:定義菜單的樣式
- Strings.xml:存放字符串資源,每個資源都會有一個資源id
Android的配置文件(清單文件)
- 指定應用的包名
package="com.itheima.helloworld"- data/data/com.itheima.helloworld(上面代碼指定的包名)
- 應用生成的文件都會存放在此路徑下
- Android的四大組件在使用前全部需要在清單文件中配置
- <Application/>的配置對整個應用生效
- <activity/>的配置對該activity生效
DDMS
- Dalvik debug monitor service
- Dalvik調試監(jiān)控服務
常用的adb指令
Android debug bridge:安卓調試橋
- adb start-server:啟動adb進程
- adb kill-server:殺死adb進程
- adb devices:查看當前與開發(fā)環(huán)境連接的設備,此命令也可以啟動adb進程
- adb install XXX.apk:往模擬器安裝apk
- adb uninstall 包名:刪除模擬器中的應用
- adb shell:進入linux命令行
- ps:查看運行進程
- ls:查看當前目錄下的文件結構
- netstat -ano:查看占用端口的進程
電話撥號器
功能:用戶輸入一個號碼,點擊撥打按鈕,啟動系統(tǒng)打電話的應用把號碼撥打出去
1. 定義布局
- 組件必須設置寬高,否則不能通過編譯
android:layout_width="wrap_content"
android:layout_height="wrap_content" - 如果要在java代碼中操作某個組件,則組件需要設置id,這樣才能在代碼中通過id拿到這個組件
android:id="@+id/et_phone"
2. 給按鈕設置點擊偵聽
- 給按鈕設置偵聽
//通過id拿到按鈕對象
Button bt_call = (Button) findViewById(R.id.bt_call);
//給按鈕設置點擊
bt_call.setOnClickListener(new MyListener());
3. 得到用戶輸入的號碼
//得到用戶輸入的號碼,先拿到輸入框組件
EditText et_phone = (EditText) findViewById(R.id.et_phone);
String phone = et_phone.getText().toString();
4. 把號碼打出去
- Android系統(tǒng)中基于動作機制,來調用系統(tǒng)的應用,你告訴系統(tǒng)你想做什么動作,系統(tǒng)就會把能做這個動作的應用給你,如果沒有這個應用,會拋異常
- 設置動作,通過意圖告知系統(tǒng)
//把號碼打出去
//先創(chuàng)建一個意圖對象
Intent intent = new Intent();
//設置動作,打電話
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + phone));
//把意圖告訴系統(tǒng)
startActivity(intent); - 添加權限
<uses-permission android:name="android.permission.CALL_PHONE"/>
點擊事件的四種寫法
第一種
- 定義一個MyListener實現(xiàn)onClickListener接口
Button bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new MyListener());
第二種
- 定義一個匿名內部類實現(xiàn)onClickListener接口
Button bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("第二種");
}
});
第三種
- 讓當前activity實現(xiàn)onClickListener接口
Button bt3 = (Button) findViewById(R.id.bt3);
bt3.setOnClickListener(this);
第四種
- 給Button節(jié)點設置onClick屬性,
android:onClick="click" - 然后在activity中定義跟該屬性值同名的方法
public void click(View v){
System.out.println("第四種");
}
短信發(fā)送器
功能:用戶輸入號碼和短信內容,點擊發(fā)送按鈕,調用短信api把短信發(fā) 送給指定號碼
1. 定義布局
- 輸入框的提示
android:hint="請輸入號碼"
2. 完成點擊事件
- 先給Button組件設置onClick屬性
onClick="send" - 在Activity中定義此方法
public void send(View v){}
3. 獲取到用戶輸入的號碼和內容
EditText et_phone = (EditText) findViewById(R.id.et_phone);
EditText et_content = (EditText) findViewById(R.id.et_content);
String phone = et_phone.getText().toString();
String content = et_content.getText().toString();
4. 調用發(fā)送短信的api
//調用發(fā)送短信的api
SmsManager sm = SmsManager.getDefault();
//發(fā)送短信
sm.sendTextMessage(phone, null, content, null, null);
- 添加權限
<uses-permission android:name="android.permission.SEND_SMS"/> - 如果短信過長,需要拆分
List smss = sm.divideMessage(content);