102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert/* 202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * Copyright (C) 2009 The Android Open Source Project 302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * 402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * you may not use this file except in compliance with the License. 602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * You may obtain a copy of the License at 702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * 802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * 1002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * Unless required by applicable law or agreed to in writing, software 1102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 1202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * See the License for the specific language governing permissions and 1402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert * limitations under the License. 1502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert */ 1602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 1702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertpackage com.android.quicksearchbox.benchmarks; 1802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 1902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertimport android.content.ComponentName; 2002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertimport android.content.Intent; 2102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertimport android.content.pm.PackageManager; 2202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 2302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert/* 2402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 2502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn BringertTo build and run: 2602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 2702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertmmm packages/apps/QuickSearchBox/benchmarks \ 2802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& adb install -r $OUT/data/app/QuickSearchBoxBenchmarks.apk \ 2902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& sleep 10 \ 3002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& adb shell am start -a android.intent.action.MAIN \ 3102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert -n com.android.quicksearchbox.benchmarks/.WebConcurrency \ 3202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert&& adb logcat 3302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 3402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert*/ 3502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 3602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringertpublic class WebConcurrency extends SourceLatency { 3702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 3802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert private static final String QUERY = "hillary clinton"; 3902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 4002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert // Delay between queries (in milliseconds). 4102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert private static final long DELAY_MS = 150; 4202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 4302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert @Override 4402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert protected void onResume() { 4502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert super.onResume(); 4602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert testEnhancedGoogleSearchConcurrent(); 4702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert finish(); 4802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert } 4902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 5002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert private ComponentName getWebSearchComponent() { 5102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert Intent webSearchIntent = new Intent(Intent.ACTION_WEB_SEARCH); 5202d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert PackageManager pm = getPackageManager(); 5302d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert return webSearchIntent.resolveActivity(pm); 5402d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert } 5502d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 5602d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert private void testEnhancedGoogleSearchConcurrent() { 5702d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert ComponentName webComponent = getWebSearchComponent(); 5802d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert checkSourceConcurrent("WEB", webComponent, QUERY, DELAY_MS); 5902d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert } 6002d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert 6102d897ec26d81fa1f3cb9e1b8f05c6bcb5d7b9dbBjorn Bringert} 62