深度剖析Android手機程序組成部分
Android 作為谷歌企業戰略的重要組成部分,這個戰略大大的提高了谷歌在中國手機界的市場,也大大的促進了整個手機行業的競爭性,下面就向大家介紹下Android手機程序內容。
這樣,在啟動程序的時候就會先啟動一個Application,然后在此Application運行過程中根據情況加載相應的Activity,而Activity是需要一個界面的。但是Instrumentation并不是這樣的。你可以將Instrumentation理解為一種沒有圖形界面的,具有啟動能力的。
用于監控其他類(用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)));
- }
- }
- }
- };
對于單元測試,我們需要認真了解的就是android.test.InstrumentationTestRunner類。這是Android手機程序單元測試的主入口。它相當于JUnit當中TestRunner的作用。那么如何加載它呢,首先要在manifest文件中加入一行關于Instrumentation的聲明。比如Android Api Demos中的測試里的manifest是這么寫的(我濾掉了所有的注釋):
編輯好 manifest,就可以打包(build,可以用Eclipse ADT來做,也可以用aapt命令手工完成),然后安裝到虛擬機上(用adb install命令)。之后就可以利用命令行的方式來加載你的單元測試了。在Android手機程序Shell中加載一個Instrumentation的方法是利用以下命令:
當然,也可以利用adb shell先進入android命令行模式,再直接寫am instrument –w XXXXXXX。下面將具體介紹如何將根據需要加載一組單元測試。
【編輯推薦】