編輯:關於Android編程

import android.os.SystemClock;
import android.test.InstrumentationTestCase;
import android.util.Log;
public class Sampletest extends InstrumentationTestCase {
private final static String TAG = "Sampletest";
private MainActivity activity = null;
private Button btn = null;
private TextView tv = null;
//初始化設置,初始化頁面對象與控件對象
@Override
protected void setUp() {
try {
super.setUp();
} catch (Exception e) {
e.printStackTrace();
}
Intent intent = new Intent();
intent.setClassName("com.example.test", MainActivity.class.getName());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity = (MainActivity) getInstrumentation().startActivitySync(intent);
tv = (TextView) activity.findViewById(R.id.tv);
btn = (Button) activity.findViewById(R.id.btn);
}
//垃圾清理與資源回收,測試完畢退出頁面
@Override
protected void tearDown() {
activity.finish();
try {
super.tearDown();
} catch (Exception e) {
e.printStackTrace();
}
}
//活動功能測試,凡是public且以test打頭的函數,均會被JUnit測試到
public void testActivity() throws Exception {
Log.d(TAG, "test the Activity");
SystemClock.sleep(1000);//先sleep一會,這時的文字是hello
for(int i=0; i<1000; i++) { //點擊1000次
getInstrumentation().runOnMainSync(new PerformClick(btn));
}
SystemClock.sleep(2000);//再sleep一會,這時看到的文字是Hello Android
Log.d(TAG, tv.getText().toString());
assertEquals("Hello World", tv.getText().toString());
//注意,這裡做了一個判斷,判斷當前tv標簽控件的文字是不是Hello World,當然不是,所以這句判斷是錯的!!!!
}
private class PerformClick implements Runnable {
Button btn;
public PerformClick(Button button) {
btn = button;
}
public void run() {
btn.performClick();
}
}
}
import com.robotium.solo.Solo; import com.example.android.notepad.NotesList; import android.test.ActivityInstrumentationTestCase2; public class NotePadTest extends ActivityInstrumentationTestCase2{ private Solo solo; public NotePadTest() { super(NotesList.class); } @Override public void setUp() throws Exception { //初始化一個Solo對象 solo = new Solo(getInstrumentation(), getActivity()); } @Override public void tearDown() throws Exception { //測試結束要關閉所有打開的頁面 solo.finishOpenedActivities(); } //測試添加記錄 public void testAddNote() throws Exception { //解鎖屏幕 solo.unlockScreen(); //點擊菜單項“Add note” solo.clickOnMenuItem("Add note"); //聲明NoteEditor這個頁面已經打開 solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); //往序號為0的編輯框輸入“Note 1” solo.enterText(0, "Note 1"); //回到上一頁 solo.goBack(); //點擊菜單項“Add note” solo.clickOnMenuItem("Add note"); //往序號為0的編輯框輸入“Note 2” //注意enterText和typeText的區別在於:typeText是模擬鍵盤輸入, //所以typeText的字符串中如果包含“\n”會轉為換行符,而enterText只會原樣顯示字符串“\n” solo.typeText(0, "Note 2"); //回到上一頁 solo.goBack(); //捕捉屏幕截圖並保存到默認路徑:Environment.getExternalStorageDirectory()+"Robotium-Screenshots/". solo.takeScreenshot(); //檢查是否找到“Note 1”和“Note 2” boolean notesFound = solo.searchText("Note 1") && solo.searchText("Note 2"); //如果找到則通過測試 assertTrue("Note 1 and/or Note 2 are not found", notesFound); } public void testEditNote() throws Exception { //點擊列表視圖的第二項,即進入到該記錄的編輯頁面 solo.clickInList(2); //隱藏軟鍵盤 solo.hideSoftKeyboard(); //變更屏幕方向為水平方向 solo.setActivityOrientation(Solo.LANDSCAPE); //點擊菜單項“Edit title” solo.clickOnMenuItem("Edit title"); //往序號為0的編輯框追加輸入“ test” solo.enterText(0, " test"); //回到上一頁 solo.goBack(); //設置屏幕方向為垂直方向 solo.setActivityOrientation(Solo.PORTRAIT); //使用通配符查找是否存在指定文本 boolean noteFound = solo.waitForText("(?i).*?note 1 test"); //如果找到則通過測試 assertTrue("Note 1 test is not found", noteFound); } public void testRemoveNote() throws Exception { //使用通配符查找是否存在包含test的文本 solo.clickOnText("(?i).*?test.*"); //點擊菜單項“Delete” solo.clickOnMenuItem("Delete"); //查找是否存在文本“Note 1 test” boolean noteFound = solo.searchText("Note 1 test"); //如果沒找到則通過測試 assertFalse("Note 1 Test is found", noteFound); //長按文本“Note 2” solo.clickLongOnText("Note 2"); //在彈出的上下文菜單中點擊文本“Delete” solo.clickOnText("Delete"); //等待100毫秒後查找是否存在文本“Note 2” noteFound = solo.waitForText("Note 2", 1, 100); //如果沒找到則通過測試 assertFalse("Note 2 is found", noteFound); } }


android實現倒計時功能代碼
效果圖,每隔1秒,變換一下時間 xml: 復制代碼 代碼如下: <RelativeLayout xmlns:android=http://schemas
Android service進程保護
應用進程保活基本就是圍繞兩個方面來展開:1 盡量保證進程不被殺死。2 進程被殺死後復活。細分如下:1)Service重啟2)進程守護3)Receiver觸發4)Alarm
工作中遇到的Android內存優化問題(1)
最近工作中,遇到了幾個內存優化的問題,1.應用退出後,此應用進程保持了不少內存得不到釋放,用工具強制gc也無法釋放。2.應用進入某些頁面瞬間請求分配內存過大。此兩個問題對
Android ImageView剖析及拓展
版本:1.0 日期:2014.6.11 2014.6.12版權:© 2014 kince 轉載注明出處 ImageView是開發中經常使用到的一個控件,也可以