• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
17 package android.app;
18 
19 import android.content.ComponentName;
20 import android.content.Intent;
21 import android.content.IIntentReceiver;
22 import android.content.pm.ActivityInfo;
23 import android.content.pm.ApplicationInfo;
24 import android.content.pm.ProviderInfo;
25 import android.content.pm.ServiceInfo;
26 import android.content.res.CompatibilityInfo;
27 import android.content.res.Configuration;
28 import android.os.Bundle;
29 import android.os.Debug;
30 import android.os.ParcelFileDescriptor;
31 import android.os.RemoteException;
32 import android.os.IBinder;
33 import android.os.IInterface;
34 
35 import java.io.FileDescriptor;
36 import java.util.List;
37 import java.util.Map;
38 
39 /**
40  * System private API for communicating with the application.  This is given to
41  * the activity manager by an application  when it starts up, for the activity
42  * manager to tell the application about things it needs to do.
43  *
44  * {@hide}
45  */
46 public interface IApplicationThread extends IInterface {
schedulePauseActivity(IBinder token, boolean finished, boolean userLeaving, int configChanges)47     void schedulePauseActivity(IBinder token, boolean finished, boolean userLeaving,
48             int configChanges) throws RemoteException;
scheduleStopActivity(IBinder token, boolean showWindow, int configChanges)49     void scheduleStopActivity(IBinder token, boolean showWindow,
50             int configChanges) throws RemoteException;
scheduleWindowVisibility(IBinder token, boolean showWindow)51     void scheduleWindowVisibility(IBinder token, boolean showWindow) throws RemoteException;
scheduleSleeping(IBinder token, boolean sleeping)52     void scheduleSleeping(IBinder token, boolean sleeping) throws RemoteException;
scheduleResumeActivity(IBinder token, boolean isForward)53     void scheduleResumeActivity(IBinder token, boolean isForward) throws RemoteException;
scheduleSendResult(IBinder token, List<ResultInfo> results)54     void scheduleSendResult(IBinder token, List<ResultInfo> results) throws RemoteException;
scheduleLaunchActivity(Intent intent, IBinder token, int ident, ActivityInfo info, Configuration curConfig, CompatibilityInfo compatInfo, Bundle state, List<ResultInfo> pendingResults, List<Intent> pendingNewIntents, boolean notResumed, boolean isForward, String profileName, ParcelFileDescriptor profileFd, boolean autoStopProfiler)55     void scheduleLaunchActivity(Intent intent, IBinder token, int ident,
56             ActivityInfo info, Configuration curConfig, CompatibilityInfo compatInfo,
57             Bundle state, List<ResultInfo> pendingResults,
58     		List<Intent> pendingNewIntents, boolean notResumed, boolean isForward,
59     		String profileName, ParcelFileDescriptor profileFd, boolean autoStopProfiler)
60     		throws RemoteException;
scheduleRelaunchActivity(IBinder token, List<ResultInfo> pendingResults, List<Intent> pendingNewIntents, int configChanges, boolean notResumed, Configuration config)61     void scheduleRelaunchActivity(IBinder token, List<ResultInfo> pendingResults,
62             List<Intent> pendingNewIntents, int configChanges,
63             boolean notResumed, Configuration config) throws RemoteException;
scheduleNewIntent(List<Intent> intent, IBinder token)64     void scheduleNewIntent(List<Intent> intent, IBinder token) throws RemoteException;
scheduleDestroyActivity(IBinder token, boolean finished, int configChanges)65     void scheduleDestroyActivity(IBinder token, boolean finished,
66             int configChanges) throws RemoteException;
scheduleReceiver(Intent intent, ActivityInfo info, CompatibilityInfo compatInfo, int resultCode, String data, Bundle extras, boolean sync)67     void scheduleReceiver(Intent intent, ActivityInfo info, CompatibilityInfo compatInfo,
68             int resultCode, String data, Bundle extras, boolean sync) throws RemoteException;
69     static final int BACKUP_MODE_INCREMENTAL = 0;
70     static final int BACKUP_MODE_FULL = 1;
71     static final int BACKUP_MODE_RESTORE = 2;
72     static final int BACKUP_MODE_RESTORE_FULL = 3;
scheduleCreateBackupAgent(ApplicationInfo app, CompatibilityInfo compatInfo, int backupMode)73     void scheduleCreateBackupAgent(ApplicationInfo app, CompatibilityInfo compatInfo,
74             int backupMode) throws RemoteException;
scheduleDestroyBackupAgent(ApplicationInfo app, CompatibilityInfo compatInfo)75     void scheduleDestroyBackupAgent(ApplicationInfo app, CompatibilityInfo compatInfo)
76             throws RemoteException;
scheduleCreateService(IBinder token, ServiceInfo info, CompatibilityInfo compatInfo)77     void scheduleCreateService(IBinder token, ServiceInfo info,
78             CompatibilityInfo compatInfo) throws RemoteException;
scheduleBindService(IBinder token, Intent intent, boolean rebind)79     void scheduleBindService(IBinder token,
80             Intent intent, boolean rebind) throws RemoteException;
scheduleUnbindService(IBinder token, Intent intent)81     void scheduleUnbindService(IBinder token,
82             Intent intent) throws RemoteException;
scheduleServiceArgs(IBinder token, boolean taskRemoved, int startId, int flags, Intent args)83     void scheduleServiceArgs(IBinder token, boolean taskRemoved, int startId,
84             int flags, Intent args) throws RemoteException;
scheduleStopService(IBinder token)85     void scheduleStopService(IBinder token) throws RemoteException;
86     static final int DEBUG_OFF = 0;
87     static final int DEBUG_ON = 1;
88     static final int DEBUG_WAIT = 2;
bindApplication(String packageName, ApplicationInfo info, List<ProviderInfo> providers, ComponentName testName, String profileName, ParcelFileDescriptor profileFd, boolean autoStopProfiler, Bundle testArguments, IInstrumentationWatcher testWatcher, int debugMode, boolean openGlTrace, boolean restrictedBackupMode, boolean persistent, Configuration config, CompatibilityInfo compatInfo, Map<String, IBinder> services, Bundle coreSettings)89     void bindApplication(String packageName, ApplicationInfo info, List<ProviderInfo> providers,
90             ComponentName testName, String profileName, ParcelFileDescriptor profileFd,
91             boolean autoStopProfiler, Bundle testArguments, IInstrumentationWatcher testWatcher,
92             int debugMode, boolean openGlTrace, boolean restrictedBackupMode, boolean persistent,
93             Configuration config, CompatibilityInfo compatInfo, Map<String, IBinder> services,
94             Bundle coreSettings) throws RemoteException;
scheduleExit()95     void scheduleExit() throws RemoteException;
scheduleSuicide()96     void scheduleSuicide() throws RemoteException;
requestThumbnail(IBinder token)97     void requestThumbnail(IBinder token) throws RemoteException;
scheduleConfigurationChanged(Configuration config)98     void scheduleConfigurationChanged(Configuration config) throws RemoteException;
updateTimeZone()99     void updateTimeZone() throws RemoteException;
clearDnsCache()100     void clearDnsCache() throws RemoteException;
setHttpProxy(String proxy, String port, String exclList)101     void setHttpProxy(String proxy, String port, String exclList) throws RemoteException;
processInBackground()102     void processInBackground() throws RemoteException;
dumpService(FileDescriptor fd, IBinder servicetoken, String[] args)103     void dumpService(FileDescriptor fd, IBinder servicetoken, String[] args)
104             throws RemoteException;
dumpProvider(FileDescriptor fd, IBinder servicetoken, String[] args)105     void dumpProvider(FileDescriptor fd, IBinder servicetoken, String[] args)
106             throws RemoteException;
scheduleRegisteredReceiver(IIntentReceiver receiver, Intent intent, int resultCode, String data, Bundle extras, boolean ordered, boolean sticky)107     void scheduleRegisteredReceiver(IIntentReceiver receiver, Intent intent,
108             int resultCode, String data, Bundle extras, boolean ordered, boolean sticky)
109             throws RemoteException;
scheduleLowMemory()110     void scheduleLowMemory() throws RemoteException;
scheduleActivityConfigurationChanged(IBinder token)111     void scheduleActivityConfigurationChanged(IBinder token) throws RemoteException;
profilerControl(boolean start, String path, ParcelFileDescriptor fd, int profileType)112     void profilerControl(boolean start, String path, ParcelFileDescriptor fd, int profileType)
113             throws RemoteException;
dumpHeap(boolean managed, String path, ParcelFileDescriptor fd)114     void dumpHeap(boolean managed, String path, ParcelFileDescriptor fd)
115             throws RemoteException;
setSchedulingGroup(int group)116     void setSchedulingGroup(int group) throws RemoteException;
getMemoryInfo(Debug.MemoryInfo outInfo)117     void getMemoryInfo(Debug.MemoryInfo outInfo) throws RemoteException;
118     static final int PACKAGE_REMOVED = 0;
119     static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
dispatchPackageBroadcast(int cmd, String[] packages)120     void dispatchPackageBroadcast(int cmd, String[] packages) throws RemoteException;
scheduleCrash(String msg)121     void scheduleCrash(String msg) throws RemoteException;
dumpActivity(FileDescriptor fd, IBinder servicetoken, String prefix, String[] args)122     void dumpActivity(FileDescriptor fd, IBinder servicetoken, String prefix, String[] args)
123             throws RemoteException;
setCoreSettings(Bundle coreSettings)124     void setCoreSettings(Bundle coreSettings) throws RemoteException;
updatePackageCompatibilityInfo(String pkg, CompatibilityInfo info)125     void updatePackageCompatibilityInfo(String pkg, CompatibilityInfo info) throws RemoteException;
scheduleTrimMemory(int level)126     void scheduleTrimMemory(int level) throws RemoteException;
dumpMemInfo(FileDescriptor fd, boolean checkin, boolean all, String[] args)127     Debug.MemoryInfo dumpMemInfo(FileDescriptor fd, boolean checkin, boolean all,
128             String[] args) throws RemoteException;
dumpGfxInfo(FileDescriptor fd, String[] args)129     void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException;
dumpDbInfo(FileDescriptor fd, String[] args)130     void dumpDbInfo(FileDescriptor fd, String[] args) throws RemoteException;
unstableProviderDied(IBinder provider)131     void unstableProviderDied(IBinder provider) throws RemoteException;
132 
133     String descriptor = "android.app.IApplicationThread";
134 
135     int SCHEDULE_PAUSE_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
136     int SCHEDULE_STOP_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+2;
137     int SCHEDULE_WINDOW_VISIBILITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+3;
138     int SCHEDULE_RESUME_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+4;
139     int SCHEDULE_SEND_RESULT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+5;
140     int SCHEDULE_LAUNCH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+6;
141     int SCHEDULE_NEW_INTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+7;
142     int SCHEDULE_FINISH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+8;
143     int SCHEDULE_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+9;
144     int SCHEDULE_CREATE_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+10;
145     int SCHEDULE_STOP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+11;
146     int BIND_APPLICATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+12;
147     int SCHEDULE_EXIT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+13;
148     int REQUEST_THUMBNAIL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+14;
149     int SCHEDULE_CONFIGURATION_CHANGED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+15;
150     int SCHEDULE_SERVICE_ARGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+16;
151     int UPDATE_TIME_ZONE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+17;
152     int PROCESS_IN_BACKGROUND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+18;
153     int SCHEDULE_BIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+19;
154     int SCHEDULE_UNBIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+20;
155     int DUMP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+21;
156     int SCHEDULE_REGISTERED_RECEIVER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+22;
157     int SCHEDULE_LOW_MEMORY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+23;
158     int SCHEDULE_ACTIVITY_CONFIGURATION_CHANGED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+24;
159     int SCHEDULE_RELAUNCH_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+25;
160     int SCHEDULE_SLEEPING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+26;
161     int PROFILER_CONTROL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+27;
162     int SET_SCHEDULING_GROUP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+28;
163     int SCHEDULE_CREATE_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29;
164     int SCHEDULE_DESTROY_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+30;
165     int GET_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+31;
166     int SCHEDULE_SUICIDE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32;
167     int DISPATCH_PACKAGE_BROADCAST_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33;
168     int SCHEDULE_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34;
169     int DUMP_HEAP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+35;
170     int DUMP_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+36;
171     int CLEAR_DNS_CACHE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+37;
172     int SET_HTTP_PROXY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+38;
173     int SET_CORE_SETTINGS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+39;
174     int UPDATE_PACKAGE_COMPATIBILITY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+40;
175     int SCHEDULE_TRIM_MEMORY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+41;
176     int DUMP_MEM_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+42;
177     int DUMP_GFX_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+43;
178     int DUMP_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+44;
179     int DUMP_DB_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+45;
180     int UNSTABLE_PROVIDER_DIED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+46;
181 }
182