Commit Graph

1799 Commits

Author SHA1 Message Date
Danny Baumann
ec4e780e5c Fix frontOfTask assignment.
If all activities of a given stack were finishing, no activity was
marked as front-of-task. This confused ActivityManager, so make sure
there's always exactly one activity marked as front-of-task.

Change-Id: I087cbe10280d4a60aa5ccfaefe24a223523fb3f2
2014-06-23 08:43:37 +02:00
Robin Lee
e46e600412 Merge "Assign AID_EVERYONE gid to newly-created processes" 2014-06-04 20:51:55 +00:00
Narayan Kamath
032c5c054c Merge "Log process abis during start." 2014-06-03 09:57:03 +00:00
Narayan Kamath
b9b31f4b8e am bd4d3203: Merge "Support an ABI flag for instrumentation."
* commit 'bd4d320344833ce67dad3a4e10a61d0502a81d0e':
  Support an ABI flag for instrumentation.
2014-05-30 10:41:24 +00:00
Narayan Kamath
bd4d320344 Merge "Support an ABI flag for instrumentation." 2014-05-30 10:35:29 +00:00
Narayan Kamath
246469a355 Log process abis during start.
Adds to the info log that the activity manager emits
during every app launch.

Change-Id: Icd442334cb0e0e0fd0cc529c6b9c315a47d4aadc
2014-05-29 18:04:57 +01:00
Dmitriy Ivanov
2137d6a843 am d5ee4144: Merge "Increase start timeout for wrapped process"
* commit 'd5ee4144c4beae54219e1b8eb10418b02dd4a63b':
  Increase start timeout for wrapped process
2014-05-23 02:35:42 +00:00
Dmitriy Ivanov
c774dcee9d Increase start timeout for wrapped process
* apparently 300*1000 for valgrind is not enough
   (hammerhead aosp tot).

Change-Id: Ia3f26cb67d3aa0ebdec68f3c1a764bad5e7f4f95
2014-05-22 12:40:25 -07:00
Narayan Kamath
8dcfefd652 Support an ABI flag for instrumentation.
Allows us to choose what ABI a process uses when
launching it with "adb shell am instrument", for eg.

adb shell am instrument --abi arm64-v8a component/runner

Note that we only perform very basic validation of the
ABI. In general, there is no guarantee that the app will
launch with the instruction set we choose, for eg. if it
has native libraries that are for a different ABI.

bug: 14453227

Change-Id: Ifb7e89b53675080dc87941091ee5ac360f218d7f
2014-05-16 10:30:00 +01:00
Narayan Kamath
6e2e686889 am 706b1d7e: Merge "Remove "required" prefix from ABI fields."
* commit '706b1d7ea0214b6858730e68c95c6a6d6d9a4c30':
  Remove "required" prefix from ABI fields.
2014-05-15 12:41:47 +00:00
Narayan Kamath
6e35a2ad05 Remove "required" prefix from ABI fields.
As per a comment on an earlier code review.

(cherry-picked from commit a9d64733421d6765eab5c2730fa912f068e26047)

Change-Id: I064cffc13c323b721f3a16c83e0e95ee348ef9f6
2014-05-15 10:57:05 +01:00
Brian Carlstrom
f2db00fdcd am edb88bcd: Merge "Use package usage information to decide what dex files to optimize in PackageManagerService"
* commit 'edb88bcd232176e575f2dbee2cfdb1bfbe33faef':
  Use package usage information to decide what dex files to optimize in PackageManagerService
2014-05-07 03:33:37 +00:00
Brian Carlstrom
ff1ec4d9e7 Use package usage information to decide what dex files to optimize in PackageManagerService
Change-Id: Iac137311e2e9d5139b5aa8651c6f3d296802612a
2014-05-06 15:06:25 -07:00
Brian Carlstrom
e3cceef7ec am 0f7c0570: Merge "Minor cleanup of UsageStatsService"
* commit '0f7c0570e091a284481c2406d8275d87c3786c1d':
  Minor cleanup of UsageStatsService
2014-05-01 21:41:58 +00:00
Brian Carlstrom
393fbe71f8 Minor cleanup of UsageStatsService
Change-Id: Idea0e29f347d14e48e87aad38a261d0493bd5fd3
2014-05-01 14:12:14 -07:00
Bill Yi
293513a59d Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD 2014-04-29 16:07:29 -07:00
Robin Lee
e66b6890ee Assign AID_EVERYONE gid to newly-created processes
Change-Id: I0ec45e07d77a4e6a47b6ba0d761c8375f433f528
2014-04-29 12:53:39 +01:00
Elliott Hughes
5f5ca3bc98 am 31a1dd2a: Merge "Use the suggested public API instead of libcore.os."
* commit '31a1dd2a8f56b439861ee335b55f44323318830c':
  Use the suggested public API instead of libcore.os.
2014-04-24 23:55:09 +00:00
Elliott Hughes
cacbe1b1ef Use the suggested public API instead of libcore.os.
Change-Id: Id392e4c36c5721ca609d88d9ec6b9340ce05274c
2014-04-24 16:19:27 -07:00
Neil Fuller
caf6497b9a am 683cf1bf: Merge "Changes to support asynchronous close interruption"
* commit '683cf1bffe33f49f26d46201f96cd2eff60e8192':
  Changes to support asynchronous close interruption
2014-04-23 16:45:15 +00:00
Neil Fuller
43582df3db Changes to support asynchronous close interruption
This change contains fixes to base from libcore change
I37de3e7d1a005a73821221e6156d10b95c595d7a

Bug: 13927110

Change-Id: I2d96e50307611c269dcf47886cd4d976854da8fc
2014-04-23 16:40:35 +00:00
Narayan Kamath
1d26a3f1ef am 09e13cc5: Merge "System services detect and register app CPU ABIs"
* commit '09e13cc5f9f98382376eb49bfa6ceb94a50d37a1':
  System services detect and register app CPU ABIs
2014-04-10 09:23:33 +00:00
Ramin Zaghi
ff0c470833 System services detect and register app CPU ABIs
This patch uses the NativeLibraryHelper class to
match native libraries in an .apk package with
those listed in 'ro.cpu.abilist' property.
The result is stored in packages.xml and the
ApplicationInfo class.

This information will be used by the ActivityManager
to decide which zygote to use to launch the given
app.

Change-Id: I3ec3d050996d8f4621f286ca331b9ad47ea26fa0
2014-04-09 17:20:13 +01:00
Craig Mautner
228cefa83d am 3fb2b713: Merge "[ActivityManager] Reduce report ANR on wrong activity."
* commit '3fb2b7132b64c65163e7c6cd948e45f703e93687':
  [ActivityManager] Reduce report ANR on wrong activity.
2014-04-07 22:14:56 +00:00
riddle_hsu
309ca5d947 [ActivityManager] Reduce report ANR on wrong activity.
Symptom: ANR report on wrong activity.

Root Cause:
  KK changed resume behavior that will not update focus when only resume,
if the activity blocked, it may report ANR on previous focus.
  By original concept, it will try to correct the ANR target,
but the stack of waiting(waitingVisible=true) activity may
different with current top stack.
  If it gets key dispatch timeout, mResumedActivity and mPausingActivity
of its stack will be null becuase it is not top stack.
Then it is unable to change ANR target to the real no response activity.

Solution:
 Use focused stack to get the real culprit.

Reproduce steps:
1.Launch an Activity X from launcher, press home key.
2.Launch X from launcher again, X blocks(sleeps 15sec) in onResume, press back key in the beginning of blocking duration.
3.ANR dialog shows launcher is no response.

Change-Id: I99416ad91e349096f995990f2240a97616fbaf28
2014-04-08 02:44:03 +08:00
Narayan Kamath
ea9e5ecac1 am 17b1b8fe: Merge "Move zygote startup logic to the frameworks."
* commit '17b1b8fe8c0c8f05f2077acc82428881bf591a78':
  Move zygote startup logic to the frameworks.
2014-04-02 10:35:38 +00:00
Narayan Kamath
973b4663b0 Move zygote startup logic to the frameworks.
The Zygote class is now in com.android.internal.os. It is
responsible for the vast majority of work before and after
the call to fork(). It calls back into the Runtime via
the new dalvik.system.ZygoteHooks class to allow the Runtime
to perform pre fork cleanup and post fork initialization.

The native code in Zygote.cpp is a direct and straightforward
port of the existing code in art. Most differences are
superficial, for example :
- We use C style logging (ALOGE) instead of stream based
  logging.
- We call env->FatalError() instead of using LOG(FATAL)

Change-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059
2014-04-02 10:18:43 +01:00
Narayan Kamath
439145f0e7 am ab561f5b: Merge "Don\'t make isSafeMode a field on the Zygote class."
* commit 'ab561f5b4073055c414866ff3dbe8372263474a7':
  Don't make isSafeMode a field on the Zygote class.
2014-03-31 12:42:14 +00:00
Narayan Kamath
d1a8d9f452 Don't make isSafeMode a field on the Zygote class.
This field is written and read exclusively by the system server,
and should therefore belong to the SystemServer class.

Change-Id: I2708a9a45c0c9cd1a6f563e8cc5844bd8c424bf7
2014-03-31 13:16:45 +01:00
Craig Mautner
155e313340 am d511bc17: Merge "[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off."
* commit 'd511bc17d614b1291f1b85f84180c1db157d2790':
  [ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.
2014-03-28 22:16:38 +00:00
Craig Mautner
d511bc17d6 Merge "[ActivityManager] Fix a bug: unable to start activity after starting activities during screen off." 2014-03-28 20:27:33 +00:00
Craig Mautner
ff3362f0d8 Merge "DO NOT MERGE - [ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front." 2014-03-28 20:23:34 +00:00
Yevgen Pronenko
0fd4c656d0 Do not show Home behind full screen activity
When ensureActivitiesVisibleLocked goes through foreground activity
stack and reaches non-fullscreen activity, it sets showHomeBehindStack
variable to true.

If there is a fullscreen activity behind, showHomeBehindStack remains
unchanged, which causes Home application to be displayed anyway.
In this case user will see a fullscreen activity and Home activity
simultaneously.

To fix the issue we set showHomeBehindStack to false when we reach
fullscreen activity in the activity stack.

This was made visible by the following commit:
446ef1de8d

Change-Id: I535c1283a4e26f5cf606375b837d4b7195324af0
2014-03-27 07:54:37 +01:00
riddle_hsu
739e194121 DO NOT MERGE - [ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front.
Symptom: ANR occurs on previous activity.
Root Cause:
In KK, when a background activity starts another existed background activity (bring to front),
if current focused stack is not the same as the stack of target starting activity,
it will still resume the top of target stack, even the top activity on the target stack may not the same as target activity.
And it will result incorrect focus, press back key will send to previous stack's top then popup ANR on previous activity:
"Reason: Waiting because no window has focus but there is a focused application".

By original code comment, it looks 'bring to front' should not happen in this issue case.
// If the target task is not in the front, then we need
// to bring it to the front...  except...  well, with
// SINGLE_TASK_LAUNCH it's not entirely clear.  We'd like
// to have the same behavior as if a new instance was
// being started, which means not bringing it to the front
// if the caller is not itself in the front.

If the caller and target are in the same stask, it will just deliver new intent without changing task order (the same behavior as JellyBean).
So the patch concept is just to avoid to use target stack to resume top when caller and target are in different stack.

Solution: Do not allow to resume another stack top if non-top activity try to bring existed activity to front.
It may not be a good solution, just a reminder for the issue case.

Reproduce steps:
Assume A, B, C are different app tasks.
When the application stack is like:
  Top C
      B
      A

 #Case 1: Home is foreground
  A starts B with NEW_TASK, C will resume, focus still stays at Home, and window order does not update.
  Then press back key or volumn key will result ANR on Home.

 #Case 2: App is foreground (Resumed activity is C)
  A starts Home, Home will resume, focus still stays at C, and window order does did not update.
  Then press back key or volumn key will result ANR on C.

Change-Id: If05070123b248e2335791e43a4d4ddee6db11d84
2014-03-26 20:43:17 +08:00
Craig Mautner
df7da51311 am ca903d38: am 81e094d7: Merge "Move task to top in window manager." into klp-dev
* commit 'ca903d3809ccd78b73b634ff7591863dbed55823':
  Move task to top in window manager.
2014-03-25 17:02:13 +00:00
Craig Mautner
81e094d76b Merge "Move task to top in window manager." into klp-dev 2014-03-25 16:48:38 +00:00
leo_hsu
82a91631d5 [ActivityManager] Fix a bug: unable to start activity after starting activities during screen off.
Symptom: Unable to start any activity.
Root Cause: ActivityStack.mPausingActivity() points to a destroyed activity of a died process, so that ActivityStackSupervisor.allPausedActivitiesComplete() always returns false.
Solution: Set mPausingActivity to null in ActivityStack.cleanUpActivityLocked().
Reproduce steps:
    a. Turn screen off.
    b. A background service starts an activity X (in process X).
    c. A background service starts a no-history activity Y (in process Y), but the main thread of Y was blocked.
    d. A background service starts Y 3~4 times --> this causes am_failed_to_pause on X.
    e. Main thread of Y is freed finally --> this causes Y crash for android.view.WindowManager$BadTokenException.
    f. Turn screen on, X is shown on screen, but neither back key nor home key can work because mPausingActivity is Y.

Change-Id: I320b3db407e2d4cc745c8ca22a6e548742234242
2014-03-21 12:27:16 +08:00
Craig Mautner
97024321fc Move task to top in window manager.
In certain situations it was possible for a task to move to the top
in activity manager but not in window manager. This resulted in
the task appearing behind the launcher icons.

Fixes bug 13410184.

Change-Id: If0582b395e126a8aff70a0e4c64b731083c6ae8a
2014-03-20 10:08:04 -07:00
Craig Mautner
674dd27ca1 am 1888333d: am d4375b47: Merge "Fix loop limits." into klp-dev
* commit '1888333d7e814d6681a327cf1f3eda10098e3620':
  Fix loop limits.
2014-03-19 21:46:18 +00:00
Craig Mautner
b4998eec3c Fix loop limits.
Fixes bug 12207606.

Change-Id: I9b450d2bc2a72a1f6581147f8930188f34c85299
2014-03-19 14:09:59 -07:00
Dianne Hackborn
d906bc14b0 am d1d91eca: am 7cb1dfe6: Merge "Insufficient ProcessRecord cleanup when persistent process is killed"
* commit 'd1d91eca3e78f2074b110a0e3530aeff6deef6fe':
  Insufficient ProcessRecord cleanup when persistent process is killed
2014-03-18 18:36:43 +00:00
Akira Numata
eff08c4ffe Insufficient ProcessRecord cleanup when persistent process is killed
When persistent process with Service restarts, ActivityManagerService
does not reset ProcessRecord#hasClientActivites to false
(because ProcessRecord of persistent process is continued using
after killing).

It disturbs updating LRU list in ActivityManagerService, and then,
when new process calls ActivityManagerProxy#publishContentProviders,
SecurityException happens because of no entry in the list.

Bug: 13517358

Change-Id: I46b064f71a4f7025ade1bf117801352a7ab22e6a
2014-03-18 05:41:30 +00:00
Craig Mautner
65b30b22e3 am 54d5702c: am 477897ad: Merge "Fix incorrect setting of TaskRecord.frontOfTask. DO NOT MERGE." into klp-dev
* commit '54d5702cf8e5e7d9fe5794f93b90b6f678ac27bb':
  Fix incorrect setting of TaskRecord.frontOfTask.  DO NOT MERGE.
2014-03-14 23:32:48 +00:00
Craig Mautner
477897ad7b Merge "Fix incorrect setting of TaskRecord.frontOfTask. DO NOT MERGE." into klp-dev 2014-03-14 22:30:04 +00:00
Craig Mautner
fdf28cc4be Fix incorrect setting of TaskRecord.frontOfTask. DO NOT MERGE.
When Intent.FLAG_ACTIVITY_REORDER_TO_FRONT was set the TaskRecord
member frontOfTask was being set true incorrectly for the top
activity. It should only be true for the bottom activity. This fix
ensures that frontOfTask is always set correctly for all activities by
consoldating it into one method.

Fixes bug 12171535.

Change-Id: If982dad3c81b2b816adc5d89e7e0496923098a70
2014-03-14 22:28:07 +00:00
Dianne Hackborn
d553313ac7 am e5191aab: am a796168d: Merge "Fix issue #11965706: Calls using IntentChooser are now Broken in 4.3 and 4.4" into klp-dev
* commit 'e5191aabff5b9b751349b8634836a858af744905':
  Fix issue #11965706: Calls using IntentChooser are now Broken in 4.3 and 4.4
2014-03-14 04:12:24 +00:00
Craig Mautner
3217cc6ff2 Merge "Fix activities appearing behind launcher icons" into klp-dev 2014-03-14 00:40:20 +00:00
Craig Mautner
e0663591a5 Fix activities appearing behind launcher icons
cherry picked from d5c91ece7b

Change-Id: I76d20398e71c1be4accfaed6b0791674197b4fb0
2014-03-13 16:16:20 -07:00
Dianne Hackborn
3026d0bf0a Fix issue #11965706: Calls using IntentChooser are now Broken in 4.3 and 4.4
The activity manager needs to set launchedFromPackage to be that of
the previous package in the case where flow has been redirected
through an intermediate activity.

Change-Id: I678fc2e7d984991ac715251a784ba7d7ccbf9fca
2014-03-12 11:16:29 -07:00
Narayan Kamath
59ed568fa5 am cd4874cf: am d265bcc4: Merge "Inform libcore of time format pref. changes."
* commit 'cd4874cfdc00d17454529b5dca85a487c7c2de77':
  Inform libcore of time format pref. changes.
2014-03-11 18:42:30 +00:00