115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/* 215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2007 The Android Open Source Project 315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License. 615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at 715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * http://www.apache.org/licenses/LICENSE-2.0 915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software 1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS, 1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and 1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License. 1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */ 1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content.pm; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Information you can retrieve about a particular piece of test 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * instrumentation. This corresponds to information collected 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * from the AndroidManifest.xml's <instrumentation> tag. 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class InstrumentationInfo extends PackageItemInfo implements Parcelable { 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The name of the application package being instrumented. From the 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * "package" attribute. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String targetPackage; 338a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 358a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * Full path to the base APK for this application. 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String sourceDir; 388a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 408a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * Full path to the publicly available parts of {@link #sourceDir}, 418a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * including resources and manifest. This may be different from 428a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * {@link #sourceDir} if an application is forward locked. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String publicSourceDir; 458a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey 468a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey /** 478a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * Full paths to zero or more split APKs that, when combined with the base 488a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * APK defined in {@link #sourceDir}, form a complete application. 498a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey */ 508a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey public String[] splitSourceDirs; 518a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey 528a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey /** 538a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * Full path to the publicly available parts of {@link #splitSourceDirs}, 548a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * including resources and manifest. This may be different from 558a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey * {@link #splitSourceDirs} if an application is forward locked. 568a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey */ 578a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey public String[] splitPublicSourceDirs; 588a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3Jeff Sharkey 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Full path to a directory assigned to the package for its persistent 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * data. 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String dataDir; 6485387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root 6585387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root /** 6685387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root * Full path to the directory where the native JNI libraries are stored. 6785387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root * 6885387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root * {@hide} 6985387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root */ 7085387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root public String nativeLibraryDir; 7185387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Specifies whether or not this instrumentation will handle profiling. 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean handleProfiling; 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** Specifies whether or not to run this instrumentation as a functional test */ 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean functionalTest; 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InstrumentationInfo() { 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InstrumentationInfo(InstrumentationInfo orig) { 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(orig); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project targetPackage = orig.targetPackage; 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sourceDir = orig.sourceDir; 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project publicSourceDir = orig.publicSourceDir; 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dataDir = orig.dataDir; 8985387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root nativeLibraryDir = orig.nativeLibraryDir; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project handleProfiling = orig.handleProfiling; 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project functionalTest = orig.functionalTest; 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "InstrumentationInfo{" 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + Integer.toHexString(System.identityHashCode(this)) 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " " + packageName + "}"; 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel dest, int parcelableFlags) { 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.writeToParcel(dest, parcelableFlags); 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(targetPackage); 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(sourceDir); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(publicSourceDir); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(dataDir); 11085387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root dest.writeString(nativeLibraryDir); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt((handleProfiling == false) ? 0 : 1); 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt((functionalTest == false) ? 0 : 1); 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final Parcelable.Creator<InstrumentationInfo> CREATOR 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project = new Parcelable.Creator<InstrumentationInfo>() { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InstrumentationInfo createFromParcel(Parcel source) { 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new InstrumentationInfo(source); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InstrumentationInfo[] newArray(int size) { 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new InstrumentationInfo[size]; 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private InstrumentationInfo(Parcel source) { 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(source); 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project targetPackage = source.readString(); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sourceDir = source.readString(); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project publicSourceDir = source.readString(); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dataDir = source.readString(); 13185387d7ba36e56b291cbde87acb5a5b2200fe01cKenny Root nativeLibraryDir = source.readString(); 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project handleProfiling = source.readInt() != 0; 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project functionalTest = source.readInt() != 0; 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 136