秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

基于安卓平臺的指南針的實(shí)現(xiàn)課程設(shè)計(jì)報告.doc

上傳人:good****022 文檔編號:116776786 上傳時間:2022-07-06 格式:DOC 頁數(shù):26 大?。?.67MB
收藏 版權(quán)申訴 舉報 下載
基于安卓平臺的指南針的實(shí)現(xiàn)課程設(shè)計(jì)報告.doc_第1頁
第1頁 / 共26頁
基于安卓平臺的指南針的實(shí)現(xiàn)課程設(shè)計(jì)報告.doc_第2頁
第2頁 / 共26頁
基于安卓平臺的指南針的實(shí)現(xiàn)課程設(shè)計(jì)報告.doc_第3頁
第3頁 / 共26頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于安卓平臺的指南針的實(shí)現(xiàn)課程設(shè)計(jì)報告.doc》由會員分享,可在線閱讀,更多相關(guān)《基于安卓平臺的指南針的實(shí)現(xiàn)課程設(shè)計(jì)報告.doc(26頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、HEFEI UNIVERSITY 課程設(shè)計(jì)報告系 別 電子信息與電氣工程系 專 業(yè) 10級通信(2)班 姓 名 麻主席、張知奧、章飛 題 目 基于安卓平臺的指南針的實(shí)現(xiàn) 學(xué) 號 1005073020 指 導(dǎo) 老 師 李祎 完 成 時 間 2014年1月4日 摘要:基于安卓平臺實(shí)現(xiàn)指南針的基本功能。本文主要介紹本組如何通過模擬器在電腦上實(shí)現(xiàn)指南針應(yīng)用的主要過程關(guān)鍵詞:安卓、傳感器、指南針安卓簡介Android一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造

2、的真正開放和完整的移動軟件。目前,最新版本為Android 2.4 Gingerbread和Android 3.0 Honeycomb。 Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。 Android早期由原名為Android的公司開發(fā),谷歌在2005年收購Android.Inc后,繼續(xù)對Android系統(tǒng)開發(fā)運(yùn)營,它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層Linux內(nèi)核只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā),部分程序以Java編寫。 2011年初數(shù)據(jù)顯示,僅正式上市兩年

3、的操作系統(tǒng)Android已經(jīng)超越稱霸十年的塞班系統(tǒng),使之躍居全球最受歡迎的智能手機(jī)平臺。現(xiàn)在,Android系統(tǒng)不但應(yīng)用于智能手機(jī),也在平板電腦市場急速擴(kuò)張,在智能MP4方面也有較大發(fā)展。采用Android系統(tǒng)主要廠商包括臺灣的HTC,(第一臺谷歌的手機(jī)G1由HTC生產(chǎn)代工)美國摩托羅拉,SE等,中國大陸廠商如:魅族(M9),華為、中興、聯(lián)想、藍(lán)魔等。搭建Android開發(fā)平臺1 下載軟件nJDK1.5+到http:/ 安裝軟件和配置環(huán)境2.1 安裝JDK下載好的JDK是一個可執(zhí)行安裝程序,雙擊安裝。假設(shè)安裝路徑為:C:/ProgramFiles/Java/jdk1.6.0_05(當(dāng)然其他路徑

4、也可以)。JDK安裝完成之后要設(shè)置系統(tǒng)環(huán)境變量:我的電腦點(diǎn)右鍵,選擇“屬性”,選擇“高級”標(biāo)簽,進(jìn)入環(huán)境變量設(shè)置。環(huán)境變量設(shè)置,分別設(shè)置三個環(huán)境變量:JAVA_HOME、path變量、classpath變量。2.1.1 設(shè)置JAVA_HOME在系統(tǒng)環(huán)境變量那一欄中點(diǎn)-新建JAVA_HOME(JAVA_HOME指向的是JDK的安裝路徑)。 變量名:JAVA_HOME;變量值:C:/ProgramFiles/Java/jdk1.6.0_05設(shè)置JAVA_HOME量的目的:l為了方便引用,比如,JDK安裝C:/ProgramFiles/Java/jdk1.6.0_05目錄里,則設(shè)置JAVA_HOME

5、為該目錄路徑,那么以后要使用這個路徑的時候,只需輸入%JAVA_HOME%即可,避免每次引用都輸入很長的路徑串;l歸一原則,當(dāng)JDK路徑改變的時候,僅需更改JAVA_HOME的變量值即可,否則,就要更改任何用絕對路徑引用JDK目錄的文檔,要是萬一沒有改全,某個程序找不到JDK,后果是可想而知的-系統(tǒng)崩潰!l第三方軟件會引用約定好的JAVA_HOME變量,不然,你不能正常使用該軟件.2.1.2 設(shè)置path變量在系統(tǒng)變量里找到path變量,選擇-編輯;(里面已經(jīng)有很多的變量值,是在變量值的最前面或其他位置加上%JAVA_HOME%/bin;)。變量名:path;變量值:%JAVA_HOME%/b

6、in;目的:使得我們能夠在系統(tǒng)中的任何地方運(yùn)行java應(yīng)用程序,比如javac、java、javah等,這就要找到我們安裝JDK的目錄,比如我們的JDK安裝在C:/ProgramFiles/Java/jdk1.6.0_05目錄下,那么在C:/ProgramFiles/Java/jdk1.6.0_05/bin目錄下就是我們常用的java應(yīng)用程序,我們就需要把C:/jdk1.6.0/bin這個目錄加到path環(huán)境變量里面。2.1.3 設(shè)置classpath環(huán)境在系統(tǒng)環(huán)境變量那一欄中點(diǎn)-新建classpath。變量名:classpath;變量值:.;%JAVA_HOME%/lib/;%JAVA_HO

7、ME%/jre/lib/(注意,CLASSPATH最前面是有個“.”的,表示當(dāng)前目錄,這樣當(dāng)我們運(yùn)行javaAClass的時候,系統(tǒng)就會先在當(dāng)前目錄尋找AClass文件了。)2.1.4 JDK環(huán)境測試配置完成下面寫一個簡單的java程式來測試J2SDK是否已安裝成功:publicclassHelloWorld publicstaticvoidmain(Stringargs) System.out.println(Helloworld!); 將程式保存為文檔名為HelloWorld.java的文檔。打開命令提示符窗口,進(jìn)入到HelloWorld.java所在目錄,鍵入下面的命令:javacHel

8、loWorld.javajavaHelloWorld2.2 安裝Eclipse將下載的Eclipse壓縮包解壓到相應(yīng)的安裝目錄即可。2.3 配置Android環(huán)境2.3.1 安裝AndroidDevelopmentTools(ADT)插件啟動eclipse,選擇:HelpSoftwareUpdatesFindandInstall.在彈出的對話框中選擇第二個選項(xiàng):Searchfornewfeaturestoinstall,點(diǎn)擊next,進(jìn)入下一步。選擇NewRemoteSite,在彈出的對話框中鍵入遠(yuǎn)程站點(diǎn)的名字(任意,如AndroidPlugin),以及站點(diǎn)的URL:https:/dl- 應(yīng)用

9、AndroidSDK到eclipse在Eclipse工具欄中,選擇:Window-Preferences.左邊菜單中選中android,在右邊瀏覽框中選擇sdk的解壓目錄作為sdklocation,點(diǎn)擊Apply,然后點(diǎn)擊OK即可3 參考資料:http:/ Activity_main.xml程序: 此時acticity_main顯示界面為二、 MainActivity.java程序:package pass;import android.app.Activity; import android.hardware.Sensor; import android.hardware.SensorEve

10、nt; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.view.animation.Animation; import android.view.animation.RotateAnimation; import android.widget.ImageView; public class MainActivity extends Activity implements SensorEvent

11、Listener private ImageView imageView; SensorManager mSensorManager; private float currentDegree=0f; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView=(ImageView)findViewById(R.id.Imageview); mSensorManage

12、r=(SensorManager)getSystemService(SENSOR_SERVICE); SuppressWarnings(deprecation)Override protected void onResume() mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME); super.onResume(); Override protected void onPause() mSen

13、sorManager.unregisterListener(this); super.onPause(); Override protected void onStop() mSensorManager.unregisterListener(this); super.onStop(); Override public void onAccuracyChanged(Sensor arg0, int arg1) SuppressWarnings(deprecation)Override public void onSensorChanged(SensorEvent event) int senso

14、rtype=event.sensor.getType(); switch(sensortype) case Sensor.TYPE_ORIENTATION: float degree=event.values0; RotateAnimation ra=new RotateAnimation(currentDegree,-degree,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); ra.setDuration(200); imageView.startAnimation(ra); currentDegree=-

15、degree; break; 3、 compass Manifest.xml 其中值得注意的有以下幾點(diǎn):1. compass的project2. Imageview添加傳感器的類型各種類型的傳感器:1.加速度傳感器 Sensor.TYPE_ACCELEROMETER:返回手機(jī)設(shè)備在X,Y,Z三個方向上的加速度.2.磁場傳感器,Sensor.TYPE_MAGNETIC_FIELD:,返回周圍磁場在手機(jī)的X,Y,Z方向上的影響(磁場分量).3.陀螺儀感應(yīng)器:Sensor.TYPE_GYROSCOPE:4.光線傳感器 Sensor.TYPE_LIGHT:返回周圍光的強(qiáng)度,單位是勒克斯lx5.距離感應(yīng)

16、器Sensor.TYPE_PROXIMITY: 6.重力傳感器Sensor.TYPE_GRAVITY:7.線性加速傳感器Sensor.TYPE_LINEAR_ACCELERATION:8.旋轉(zhuǎn)向量傳感器Sensor.TYPE_ROTATION_VECTOR:9.方向傳感器:Sensor.TYPE_ORIENTATION:返回三個值,第一個為和正北方向的角度,沿Z軸旋轉(zhuǎn),0表示正北,90度表示正東,180表示正南,270表示正西.第二個值繞X軸傾斜,水平屏幕向上,返回0,抬起手機(jī)頂部時,值開始減小,范圍0-180,從手機(jī)底部開始抬起,值范圍為0180.第三個值為手機(jī)左側(cè)或者右側(cè)翹起的高度.沿著Y

17、軸傾斜,范圍是-9090,水平放置為0,從左側(cè)抬起,會從0到-90,從右側(cè)開始抬起,范圍為090.10.Sensor.TYPE_TEMPERATURE:溫度傳感器,返回攝氏度.11.Sensor.TYPE_PRESSURE壓力傳感器,代表手機(jī)設(shè)備周圍壓力的大小雖然AndroidSDK定義了十多種傳感器,但并不是每一部手機(jī)都完全支持這些傳感器。傳感器的使用Android提供的API中對于不同傳感器的調(diào)用都是用同一個接口,這樣編程起來顯得非常簡單。先得到傳感器的控制器,然后注冊你感興趣的感應(yīng)事件,代碼如下SensorManager SensorManager = (SensorManager)ge

18、tSystemService(Context.SENSOR_SERVICE); /注冊方位角傳感器,感應(yīng)事件的周期是0.12s產(chǎn)生一次報告 mSensorManager.registerListener(mListener, SensorManager.SENSOR_ORIENTATION, SensorManager.SENSOR_DELAY_NORMAL );如果想要獲得其他感應(yīng)事件,只需要修改第二個參數(shù)為相應(yīng)的傳感器對應(yīng)的枚舉數(shù)值,第三個參數(shù)是感應(yīng)事件的頻率,設(shè)置感應(yīng)事件頻率,有四種頻率模式可選,每個相差0.04s。然后設(shè)置一個監(jiān)聽器,利用監(jiān)聽接口onSensorChanged來讀取具體

19、感應(yīng)的內(nèi)容public void onSensorChanged(int sensor, float values) if (Config.DEBUG) Log.d(TAG, 極方位角azimuth, + values0); Log.d(TAG, 傾斜角pitch, + values1); Log.d(TAG, 轉(zhuǎn)角roll, + values2); 指南針應(yīng)用代碼片段,雙擊復(fù)制package com.ijowett.example.SystemService; import java.util.List; import android.app.Activity; import android

20、.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.hardware.Sensor; import android.hardware.SensorListener; import android.hardware.SensorManager; import android.os.Bundle; import android.util.C

21、onfig; import android.util.Log; import android.view.View; public class Compass extends Activity private static final String TAG = Compass; private SensorManager mSensorManager; private SampleView mView; private float mValues; private final SensorListener mListener = new SensorListener() public void

22、onSensorChanged(int sensor, float values) if (Config.DEBUG) Log.d(TAG, sensorChanged ( + values0 + , + values1 + , + values2 + ); mValues = values; if (mView != null) mView.invalidate(); public void onAccuracyChanged(int sensor, int accuracy) / TODO Auto-generated method stub ; Overrideprotected voi

23、d onCreate(Bundle icicle) super.onCreate(icicle); mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); List sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); Log.d(TAG, There are + sensors.size() + sensors.); for(Sensor sens : sensors) Log.d(TAG, Sensor name: + sens.getTy

24、pe(); Log.d(TAG, Sensor name: + sens.getName(); mView = new SampleView(this); setContentView(mView); Overrideprotected void onResume() if (Config.LOGD) Log.d(TAG, onResume); super.onResume(); mSensorManager.registerListener(mListener, SensorManager.SENSOR_ORIENTATION, SensorManager.SENSOR_DELAY_GAME

25、); Overrideprotected void onStop() if (Config.LOGD) Log.d(TAG, onStop); mSensorManager.unregisterListener(mListener); super.onStop(); private class SampleView extends View private Paint mPaint = new Paint(); private Path mPath = new Path(); private boolean mAnimate; private long mNextTime; public Sa

26、mpleView(Context context) super(context); / Construct a wedge-shaped path mPath.moveTo(0, -50); mPath.lineTo(-20, 60); mPath.lineTo(0, 50); mPath.lineTo(20, 60); mPath.close(); Override protected void onDraw(Canvas canvas) Paint paint = mPaint; canvas.drawColor(Color.WHITE); paint.setAntiAlias(true)

27、; paint.setColor(Color.BLUE); paint.setStyle(Paint.Style.FILL); int w = canvas.getWidth(); int h = canvas.getHeight(); int cx = w / 2; int cy = h / 2; canvas.translate(cx, cy); if (mValues != null) canvas.rotate(-mValues0); canvas.drawPath(mPath, mPaint); Overrideprotected void onAttachedToWindow()

28、mAnimate = true; super.onAttachedToWindow(); Overrideprotected void onDetachedFromWindow() mAnimate = false; super.onDetachedFromWindow(); 傳感器監(jiān)測裝置感受測量信息按規(guī)律轉(zhuǎn)換為電信號或其他形式的信息輸出自動監(jiān)測和自動控制Android 支持的傳感器:1.方向傳感器2.磁場傳感器3.溫度傳感器4.光感傳感器5.壓力傳感器獲取SensorManager對象getSysteService(Context.SENSOR_SERVICE)獲取傳感器類型getDefa

29、ultSensor(int type)注冊傳感器registerListener()模擬完成上述代碼操作后,運(yùn)行:模擬器待機(jī)畫面模擬器主界面模擬器程序界面模擬器compass效果圖模擬器compass運(yùn)行界面功能1、高精確度:專業(yè)航海指針,精確指南。2、流暢操作:流暢的羅盤旋轉(zhuǎn),專業(yè)的傳感器去噪處理,讓您的指南針更精準(zhǔn)。 3、智能校準(zhǔn):智能的校準(zhǔn)提示(8字型環(huán)繞設(shè)備),提升您的指南針設(shè)備的精確度。 4、磁北正北:輕松的磁北正北轉(zhuǎn)換。 5、誤差校正:允許手動輸入地磁偏角??偨Y(jié)通過這次課程設(shè)計(jì),我對Android程序設(shè)計(jì)有了新的認(rèn)識,尤其是傳感器方面,弄懂了許多基礎(chǔ)理論,不過自己還有很多方面不足。在這個循序漸進(jìn)的過程中,解決了一些自己的認(rèn)為比較難的地方后我又繼續(xù)朝前行進(jìn)著。課程設(shè)計(jì)終于在我們小組的努力下做完了。我更加深入的了解了Android的特點(diǎn)以及一些相關(guān)知識。與其臨淵羨魚,不如退而結(jié)網(wǎng)。這次Android課程設(shè)計(jì)給我的最大的印象就是如果自己有了興趣,就動手去做,在你的勇氣和毅力下,困難是抬不了頭的。如果你連失敗都不怕了,那你還怕什么,拾起懶惰的心,勤奮就會走向成功。這次的課程設(shè)計(jì)在我未來的時日里,是一個標(biāo)桿,因?yàn)樗嬖V了我,只要我努力沒有什么事我做不好的。最后我要感謝李祎老師對我們的辛勤培養(yǎng),謝謝參考網(wǎng)址1.http:/

展開閱讀全文
溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!