Android實(shí)驗(yàn)指導(dǎo)_第1頁
Android實(shí)驗(yàn)指導(dǎo)_第2頁
Android實(shí)驗(yàn)指導(dǎo)_第3頁
Android實(shí)驗(yàn)指導(dǎo)_第4頁
Android實(shí)驗(yàn)指導(dǎo)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)一:系統(tǒng)安裝與HelloWorld【目的】安裝智能手機(jī)開發(fā)相關(guān)軟件平臺?!疽蟆?、 完成智能手機(jī)開發(fā)平臺安裝、以及相關(guān)配置2、 并實(shí)現(xiàn)Hello World3、 了解項(xiàng)目的基本文件目錄結(jié)構(gòu)【原理】Eclipse安裝原理,Android編程方法【過程】1、 安裝JAVA JDK下載網(wǎng)址:2、 安裝Eclipse下載網(wǎng)址:3、 安裝Android或4、 安裝ADT(Android Development Tools)或5、 安裝手機(jī)USB驅(qū)動或如果用模擬器調(diào)試,則可暫時(shí)不裝。6、 建立新項(xiàng)目,實(shí)現(xiàn)Hello World。Open Eclipse.Click the menu File - N

2、ew - Project.Expand the Android folder and select Android Project.Name the project HelloWorld得到的文件結(jié)構(gòu)如下:運(yùn)行:選運(yùn)行的設(shè)備,可以是模擬器,也可以是真機(jī)(如果已經(jīng)連接好真實(shí)手機(jī)的話):真手機(jī)模擬器模擬器運(yùn)行:真實(shí)手機(jī)調(diào)試:實(shí)驗(yàn)二:界面設(shè)計(jì):控件與布局【目的】Android編程基礎(chǔ),UI設(shè)計(jì)?!疽蟆?、 了解Android編程原理2、 掌握界面控件設(shè)計(jì)3、 掌握控件的事件處理編程【原理】UI設(shè)計(jì)原理【過程】1、 了解各種控件的基本功能各種控件:MenuTextView、EditText、Butt

3、onRadio buttonListProgressBar;2、 了解布局Layout的應(yīng)用多種Layout:AbsoluteLayoutFrameLayoutGridViewLinearLayoutListLayoutRadioGroupTableLayout3、 利用布局安排各種控件,設(shè)計(jì)良好用戶界面實(shí)驗(yàn)三:圖形繪制與OpenGL【目的】在屏幕繪制各種圖形,了解OpenGL【要求】1、 了解在屏幕繪圖方法2、 了解OpenGL【原理】【過程】1、 繪制直線、園、曲線等各種圖形2、 顯示字符3、 利用OpenGL編程方法publicvoid onDrawFrame(GL10 gl) /一般的

4、opengl程序,首先要做的就是清屏gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);/緊接著設(shè)置模型視圖矩陣gl.glMatrixMode(GL10.GL_MODELVIEW);gl.glLoadIdentity();/清空矩陣GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0);/視點(diǎn)變換,將相機(jī)位置設(shè)置為(0, 0, 3),同時(shí)指向(0, 0, 0)點(diǎn)/設(shè)置模型位置旋轉(zhuǎn)及縮放信息gl.glTranslatef(, , );/將模型位置設(shè)置為(0, 0, -1)float an

5、gle = ;gl.glRotatef(angle, 0, 1, 0);/繞模型自身Y軸旋轉(zhuǎn)30度gl.glRotatef(angle, 1, 0, 0);/繞模型自身X軸旋轉(zhuǎn)30度gl.glScalef(, , );/設(shè)置三方向的縮放系數(shù)/設(shè)置顏色4f(, , , );/渲染立方體mCube.draw(gl, gl.GL_TRIANGLES);/mCube.draw(gl, gl.GL_LINES);實(shí)驗(yàn)四:網(wǎng)絡(luò)訪問與服務(wù)【目的】掌握Android網(wǎng)絡(luò)訪問方法【要求】1、 了解手機(jī)WEB網(wǎng)站訪問編程2、 通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)訪問3、 了解數(shù)據(jù)庫使用【原理】利用Android網(wǎng)絡(luò)訪問協(xié)議【過程】1

6、、 訪問WEB網(wǎng)站,通過HttpResponse類,讀入網(wǎng)絡(luò)數(shù)據(jù)。HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(url);HttpResponse response = client.execute(get);HttpEntity entity = response.getEntity();/嘗試讀取entity的長度,返回-1表示長度未知long length = entity.getContentLength();InputStream is = entity.getContent();Strin

7、g s = null;if (is != null) ByteArrayOutputStream baos = new ByteArrayOutputStream();byte buf = newbyte512;int ch = -1;int count = 0;while (ch = is.read(buf) != -1) baos.write(buf, 0, ch);count += ch;/如果長度已知,可以通過taskProgress()通知監(jiān)聽者任務(wù)執(zhí)行的比例if (length 0) listener.taskProgress(this, count, length);/為了更好的

8、演示進(jìn)度,讓線程休眠100msThread.sleep(100);Log.e(HttpTask, length= + baos.toByteArray().length);/返回內(nèi)容s = new String(baos.toByteArray();return s;讀入網(wǎng)站數(shù)據(jù):實(shí)驗(yàn)五:硬件訪問與傳感器【目的】通過底層API訪問手機(jī)硬件及手機(jī)上的各種傳感器【要求】1、 獲取手機(jī)上電話、短信等各種功能的編程2、 了解手機(jī)上各種傳感器的功能與使用方法【原理】利用手機(jī)本身的功能與相關(guān)傳感器的使用【過程】1、 了解程序使用手機(jī)電話功能的方法短信收發(fā):package com.android.TinyS

9、MS;import android.app.Activity;import;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.gsm.SmsManager;import android.view.View;import android.widget.Button;import android.widget.EditText;import and

10、roid.widget.Toast;publicclass TinySMS extends Activity publicstaticfinal String SMS_ACTION = com.android.TinySMS.RESULT;/private TextViewmessage;private Buttonsnd;private EditTexttel;private EditTexttxt;private SentReceiver receiver = new SentReceiver();privateclass SentReceiver extends BroadcastRec

11、eiver Overridepublicvoid onReceive(Context context, Intent intent) if (intent.getAction().equals(SMS_ACTION) int code = getResultCode();/短消息發(fā)送成功if(code = Activity.RESULT_OK) Toast.makeText(TinySMS.this, R.string.msg_sent, Toast.LENGTH_SHORT).show(); ;/* Called when the activity is first created. */O

12、verridepublicvoid onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main);tel = (EditText) findViewById(R.id.EditText01);tel.setText(5554); /模擬器之間互發(fā)短信txt = (EditText) findViewById(R.id.EditText02);txt.setText(我用自己的程序試試發(fā)短信。);snd = (Button) findViewById(R.

13、id.Button01);snd.setOnClickListener(new View.OnClickListener() publicvoid onClick(View arg0) String phoneNo = tel.getText().toString(); String message = txt.getText().toString();if (phoneNo.length()0 & message.length()0) sendSMS(phoneNo, message); else Toast.makeText(TinySMS.this,請重新輸入電話號碼和短信內(nèi)容, Toa

14、st.LENGTH_LONG).show(); ); privatevoid sendSMS(String address, String content) SmsManager manager = SmsManager.getDefault(); Intent i = new Intent(SMS_ACTION);/生成PendingIntent,當(dāng)消息發(fā)送完成,接收到廣播PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, i,PendingIntent.FLAG_ONE_SHOT); manager.sendText

15、Message( address,null, content, sentIntent,null); 如果要發(fā)短信,還需在AndroidManifest.xml中聲明權(quán)限:2、 手機(jī)上有多種傳感器,可以對這些傳感器進(jìn)行編程。相機(jī)拍攝:package com.android.cameraAndroid;import android.app.Activity;import android.os.Bundle;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import android.con

16、tent.Context;import android.content.Intent;import android.graphics.PixelFormat;import android.hardware.Camera;import android.hardware.Camera.Parameters;import android.hardware.Camera.PictureCallback;import android.hardware.Camera.ShutterCallback;import android.media.AudioManager;import android.media

17、.ToneGenerator;import .Uri;import android.os.Environment;import android.os.StatFs;import android.view.Menu;import android.view.MenuItem;import android.view.SurfaceHolder;import android.view.SurfaceView;public class CameraAndroid extends Activity private CameraPreview preview;private Camera camera;pr

18、ivate ToneGenerator tone;private static final int OPTION_SNAPSHOT = 0;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);preview = new CameraPreview(this);setContentView(preview);Overridepublic boolean onOptionsItemSelected(MenuItem item) int itemId = item.get

19、ItemId();switch(itemId)case OPTION_SNAPSHOT:/拍攝照片camera.takePicture(shutterCallback, null, jpegCallback);break;return true;/返回照片的JPEG格式的數(shù)據(jù)private PictureCallback jpegCallback = new PictureCallback()public void onPictureTaken(byte data, Camera camera) Parameters ps = camera.getParameters();if(ps.getP

20、ictureFormat() = PixelFormat.JPEG) /存儲拍照獲得的圖片 String path = save(data); /將圖片交給Image程序處理 Uri uri = Uri.fromFile(new File(path); Intent intent = new Intent(); intent.setAction(ent.action.VIEW); intent.setDataAndType(uri, image/jpeg); startActivity(intent);/快門按下的時(shí)候onShutter()被回調(diào)private Shutt

21、erCallback shutterCallback = new ShutterCallback()public void onShutter() if(tone = null)/發(fā)出提示用戶的聲音tone = new ToneGenerator(AudioManager.STREAM_MUSIC,ToneGenerator.MAX_VOLUME);tone.startTone(ToneGenerator.TONE_PROP_BEEP2);private String save(byte data)String path = /sdcard/+System.currentTimeMillis(

22、)+.jpg;try /判斷SD卡上是否有足夠的空間String storage = Environment.getExternalStorageDirectory().toString();StatFs fs = new StatFs(storage);long available = fs.getAvailableBlocks()*fs.getBlockSize();if(available Properties Java Build Path Libraries and click onAdd External JARs. 然后增加文件2、使用eSpeak引擎前需要為Emulator添加虛擬SD Card。3、 將這個(gè)APK安裝到Emulator (啟動Emulator的前提下,在CLS中輸入”adb install *.APK “)。當(dāng)程序運(yùn)行后也可以通過參數(shù)控制是否需要彈出安裝tts_market.apk的提示對話框:4、實(shí)現(xiàn)調(diào)用語音庫的方法:1)創(chuàng)建一個(gè)新的Android項(xiàng)目,可以隨意命名為你

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論