深度剖析Android手機(jī)程序組成部分
Android 作為谷歌企業(yè)戰(zhàn)略的重要組成部分,這個戰(zhàn)略大大的提高了谷歌在中國手機(jī)界的市場,也大大的促進(jìn)了整個手機(jī)行業(yè)的競爭性,下面就向大家介紹下Android手機(jī)程序內(nèi)容。
這樣,在啟動程序的時候就會先啟動一個Application,然后在此Application運行過程中根據(jù)情況加載相應(yīng)的Activity,而Activity是需要一個界面的。但是Instrumentation并不是這樣的。你可以將Instrumentation理解為一種沒有圖形界面的,具有啟動能力的。
用于監(jiān)控其他類(用Target Package聲明)的工具類。任何想成為Instrumentation的類必須繼承android.app.Instrumentation。下面是這個類的解釋:
- private SensorEventListener listener = new SensorEventListener(){
- public static volatile float direction = (float) 0;
- public static volatile float inclination;
- public static volatile float rollingZ = (float)0;
- public static volatile float kFilteringFactor = (float)0.05;
- public static float aboveOrBelow = (float)0;
- public void onAccuracyChanged(Sensor arg0, int arg1){}
- public void onSensorChanged(SensorEvent evt)
- {
- float vals[] = evt.values;
- if(evt.sensor.getType() == Sensor.TYPE_ORIENTATION)
- {
- float rawDirection = vals[0];
- direction =(float) ((rawDirection * kFilteringFactor) +
- (direction * (1.0 - kFilteringFactor)));
- inclination =
- (float) ((vals[2] * kFilteringFactor) +
- (inclination * (1.0 - kFilteringFactor)));
- if(aboveOrBelow > 0)
- inclinationinclination = inclination * -1;
- if(evt.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
- {
- aboveOrBelow =
- (float) ((vals[2] * kFilteringFactor) +
- (aboveOrBelow * (1.0 - kFilteringFactor)));
- }
- }
- }
- };
對于單元測試,我們需要認(rèn)真了解的就是android.test.InstrumentationTestRunner類。這是Android手機(jī)程序單元測試的主入口。它相當(dāng)于JUnit當(dāng)中TestRunner的作用。那么如何加載它呢,首先要在manifest文件中加入一行關(guān)于Instrumentation的聲明。比如Android Api Demos中的測試?yán)锏膍anifest是這么寫的(我濾掉了所有的注釋):
編輯好 manifest,就可以打包(build,可以用Eclipse ADT來做,也可以用aapt命令手工完成),然后安裝到虛擬機(jī)上(用adb install命令)。之后就可以利用命令行的方式來加載你的單元測試了。在Android手機(jī)程序Shell中加載一個Instrumentation的方法是利用以下命令:
當(dāng)然,也可以利用adb shell先進(jìn)入android命令行模式,再直接寫am instrument –w XXXXXXX。下面將具體介紹如何將根據(jù)需要加載一組單元測試。
【編輯推薦】