IApplicationThread.java revision 7fd239cf0a1ddc0500b51d97e0e6c3539b42639f
1/*
2 * Copyright (C) 2006 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.app;
18
19import android.content.ComponentName;
20import android.content.Intent;
21import android.content.IIntentReceiver;
22import android.content.pm.ActivityInfo;
23import android.content.pm.ApplicationInfo;
24import android.content.pm.ProviderInfo;
25import android.content.pm.ServiceInfo;
26import android.content.res.CompatibilityInfo;
27import android.content.res.Configuration;
28import android.net.Uri;
29import android.os.Bundle;
30import android.os.Debug;
31import android.os.ParcelFileDescriptor;
32import android.os.PersistableBundle;
33import android.os.RemoteException;
34import android.os.IBinder;
35import android.os.IInterface;
36import android.service.voice.IVoiceInteractionSession;
37import com.android.internal.app.IVoiceInteractor;
38
39import java.io.FileDescriptor;
40import java.util.List;
41import java.util.Map;
42
43/**
44 * System private API for communicating with the application.  This is given to
45 * the activity manager by an application  when it starts up, for the activity
46 * manager to tell the application about things it needs to do.
47 *
48 * {@hide}
49 */
50public interface IApplicationThread extends IInterface {
51    void schedulePauseActivity(IBinder token, boolean finished, boolean userLeaving,
52            int configChanges) throws RemoteException;
53    void scheduleStopActivity(IBinder token, boolean showWindow,
54            int configChanges) throws RemoteException;
55    void scheduleWindowVisibility(IBinder token, boolean showWindow) throws RemoteException;
56    void scheduleSleeping(IBinder token, boolean sleeping) throws RemoteException;
57    void scheduleResumeActivity(IBinder token, int procState, boolean isForward, Bundle resumeArgs)
58            throws RemoteException;
59    void scheduleSendResult(IBinder token, List<ResultInfo> results) throws RemoteException;
60    void scheduleLaunchActivity(Intent intent, IBinder token, int ident,
61            ActivityInfo info, Configuration curConfig, CompatibilityInfo compatInfo,
62            IVoiceInteractor voiceInteractor, int procState, Bundle state,
63            PersistableBundle persistentState, List<ResultInfo> pendingResults,
64            List<Intent> pendingNewIntents, boolean notResumed, boolean isForward,
65            String profileName, ParcelFileDescriptor profileFd, boolean autoStopProfiler)
66            throws RemoteException;
67    void scheduleRelaunchActivity(IBinder token, List<ResultInfo> pendingResults,
68            List<Intent> pendingNewIntents, int configChanges,
69            boolean notResumed, Configuration config) throws RemoteException;
70    void scheduleNewIntent(List<Intent> intent, IBinder token) throws RemoteException;
71    void scheduleDestroyActivity(IBinder token, boolean finished,
72            int configChanges) throws RemoteException;
73    void scheduleReceiver(Intent intent, ActivityInfo info, CompatibilityInfo compatInfo,
74            int resultCode, String data, Bundle extras, boolean sync,
75            int sendingUser, int processState) throws RemoteException;
76    static final int BACKUP_MODE_INCREMENTAL = 0;
77    static final int BACKUP_MODE_FULL = 1;
78    static final int BACKUP_MODE_RESTORE = 2;
79    static final int BACKUP_MODE_RESTORE_FULL = 3;
80    void scheduleCreateBackupAgent(ApplicationInfo app, CompatibilityInfo compatInfo,
81            int backupMode) throws RemoteException;
82    void scheduleDestroyBackupAgent(ApplicationInfo app, CompatibilityInfo compatInfo)
83            throws RemoteException;
84    void scheduleCreateService(IBinder token, ServiceInfo info,
85            CompatibilityInfo compatInfo, int processState) throws RemoteException;
86    void scheduleBindService(IBinder token,
87            Intent intent, boolean rebind, int processState) throws RemoteException;
88    void scheduleUnbindService(IBinder token,
89            Intent intent) throws RemoteException;
90    void scheduleServiceArgs(IBinder token, boolean taskRemoved, int startId,
91            int flags, Intent args) throws RemoteException;
92    void scheduleStopService(IBinder token) throws RemoteException;
93    static final int DEBUG_OFF = 0;
94    static final int DEBUG_ON = 1;
95    static final int DEBUG_WAIT = 2;
96    void bindApplication(String packageName, ApplicationInfo info, List<ProviderInfo> providers,
97            ComponentName testName, String profileName, ParcelFileDescriptor profileFd,
98            boolean autoStopProfiler, Bundle testArguments, IInstrumentationWatcher testWatcher,
99            IUiAutomationConnection uiAutomationConnection, int debugMode,
100            boolean openGlTrace, boolean restrictedBackupMode, boolean persistent,
101            Configuration config, CompatibilityInfo compatInfo, Map<String, IBinder> services,
102            Bundle coreSettings) throws RemoteException;
103    void scheduleExit() throws RemoteException;
104    void scheduleSuicide() throws RemoteException;
105    void scheduleConfigurationChanged(Configuration config) throws RemoteException;
106    void updateTimeZone() throws RemoteException;
107    void clearDnsCache() throws RemoteException;
108    void setHttpProxy(String proxy, String port, String exclList,
109            Uri pacFileUrl) throws RemoteException;
110    void processInBackground() throws RemoteException;
111    void dumpService(FileDescriptor fd, IBinder servicetoken, String[] args)
112            throws RemoteException;
113    void dumpProvider(FileDescriptor fd, IBinder servicetoken, String[] args)
114            throws RemoteException;
115    void scheduleRegisteredReceiver(IIntentReceiver receiver, Intent intent,
116            int resultCode, String data, Bundle extras, boolean ordered,
117            boolean sticky, int sendingUser, int processState) throws RemoteException;
118    void scheduleLowMemory() throws RemoteException;
119    void scheduleActivityConfigurationChanged(IBinder token) throws RemoteException;
120    void profilerControl(boolean start, String path, ParcelFileDescriptor fd, int profileType)
121            throws RemoteException;
122    void dumpHeap(boolean managed, String path, ParcelFileDescriptor fd)
123            throws RemoteException;
124    void setSchedulingGroup(int group) throws RemoteException;
125    static final int PACKAGE_REMOVED = 0;
126    static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
127    void dispatchPackageBroadcast(int cmd, String[] packages) throws RemoteException;
128    void scheduleCrash(String msg) throws RemoteException;
129    void dumpActivity(FileDescriptor fd, IBinder servicetoken, String prefix, String[] args)
130            throws RemoteException;
131    void setCoreSettings(Bundle coreSettings) throws RemoteException;
132    void updatePackageCompatibilityInfo(String pkg, CompatibilityInfo info) throws RemoteException;
133    void scheduleTrimMemory(int level) throws RemoteException;
134    void dumpMemInfo(FileDescriptor fd, Debug.MemoryInfo mem, boolean checkin, boolean dumpInfo,
135            boolean dumpDalvik, String[] args) throws RemoteException;
136    void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException;
137    void dumpDbInfo(FileDescriptor fd, String[] args) throws RemoteException;
138    void unstableProviderDied(IBinder provider) throws RemoteException;
139    void requestAssistContextExtras(IBinder activityToken, IBinder requestToken, int requestType)
140            throws RemoteException;
141    void scheduleTranslucentConversionComplete(IBinder token, boolean timeout)
142            throws RemoteException;
143    void setProcessState(int state) throws RemoteException;
144    void scheduleInstallProvider(ProviderInfo provider) throws RemoteException;
145    void updateTimePrefs(boolean is24Hour) throws RemoteException;
146
147    String descriptor = "android.app.IApplicationThread";
148
149    int SCHEDULE_PAUSE_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
150    int SCHEDULE_STOP_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+2;
151    int SCHEDULE_WINDOW_VISIBILITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+3;
152    int SCHEDULE_RESUME_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+4;
153    int SCHEDULE_SEND_RESULT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+5;
154    int SCHEDULE_LAUNCH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+6;
155    int SCHEDULE_NEW_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+7;
156    int SCHEDULE_FINISH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+8;
157    int SCHEDULE_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+9;
158    int SCHEDULE_CREATE_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+10;
159    int SCHEDULE_STOP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+11;
160    int BIND_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+12;
161    int SCHEDULE_EXIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+13;
162
163    int SCHEDULE_CONFIGURATION_CHANGED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+15;
164    int SCHEDULE_SERVICE_ARGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+16;
165    int UPDATE_TIME_ZONE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+17;
166    int PROCESS_IN_BACKGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+18;
167    int SCHEDULE_BIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+19;
168    int SCHEDULE_UNBIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+20;
169    int DUMP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+21;
170    int SCHEDULE_REGISTERED_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+22;
171    int SCHEDULE_LOW_MEMORY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+23;
172    int SCHEDULE_ACTIVITY_CONFIGURATION_CHANGED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+24;
173    int SCHEDULE_RELAUNCH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+25;
174    int SCHEDULE_SLEEPING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+26;
175    int PROFILER_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+27;
176    int SET_SCHEDULING_GROUP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+28;
177    int SCHEDULE_CREATE_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29;
178    int SCHEDULE_DESTROY_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+30;
179
180    int SCHEDULE_SUICIDE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32;
181    int DISPATCH_PACKAGE_BROADCAST_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33;
182    int SCHEDULE_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34;
183    int DUMP_HEAP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+35;
184    int DUMP_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+36;
185    int CLEAR_DNS_CACHE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+37;
186    int SET_HTTP_PROXY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+38;
187    int SET_CORE_SETTINGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+39;
188    int UPDATE_PACKAGE_COMPATIBILITY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+40;
189    int SCHEDULE_TRIM_MEMORY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+41;
190    int DUMP_MEM_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+42;
191    int DUMP_GFX_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+43;
192    int DUMP_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+44;
193    int DUMP_DB_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+45;
194    int UNSTABLE_PROVIDER_DIED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+46;
195    int REQUEST_ASSIST_CONTEXT_EXTRAS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+47;
196    int SCHEDULE_TRANSLUCENT_CONVERSION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+48;
197    int SET_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49;
198    int SCHEDULE_INSTALL_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50;
199    int UPDATE_TIME_PREFS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51;
200}
201