23548 Commits

Author SHA1 Message Date
Fyodor Kupolov
77e46d214d am 6a17f601: Merge "Unnecessary dexopt in installPackageLI"
* commit '6a17f60166082227a5a644f9114db46a0ade73f0':
  Unnecessary dexopt in installPackageLI
2015-04-07 18:24:55 +00:00
Fyodor Kupolov
6a17f60166 Merge "Unnecessary dexopt in installPackageLI" 2015-04-07 18:03:35 +00:00
Olawale Ogunwale
bde7e467ac am d229f442: Merge "Add a timeout state to frozen windows"
* commit 'd229f442d5b8c2e600eaa4daeec0e771631ed83d':
  Add a timeout state to frozen windows
2015-04-07 17:35:53 +00:00
Craig Mautner
3aacbbc025 Add a timeout state to frozen windows
When an activity stops drawing following a rotation the rotation
screenshot would become stuck on top of all the other windows. The
timeout was being acknowledged but mWindowsFreezingScreen was set to
true which kept stopFreezingDisplayLocked() from dismissing the
screen rotation animation.

By changing mWindowsFreezingScreen from a two state variable to a
three state variable, including a timeout state we allow
stopFreezingDisplayLocked() to continue and dismiss the screen
rotation animtion.

This change also reduces the APP_FREEZING_TIMOEOUT from 5 seconds to
2 seconds.

Bug: 15664090

Change-Id: Ida5aca002a82ec8fe1ea99f0ced814c5c8f01a95
2015-04-07 09:14:36 -07:00
Olawale Ogunwale
a9418c241f am 8928c727: Merge "[ActivityManager] Improve task order of getRunningTasks."
* commit '8928c7271bee4b31e94b3d9e8e6e756d5aa2bcff':
  [ActivityManager] Improve task order of getRunningTasks.
2015-04-07 13:02:37 +00:00
Olawale Ogunwale
8928c7271b Merge "[ActivityManager] Improve task order of getRunningTasks." 2015-04-07 12:45:38 +00:00
Olawale Ogunwale
43293fa800 am 437db610: Merge "[ActivityManager] Do not add service to reschedule after removing users."
* commit '437db6106b20d5a81f12a93593b5f623b3159f19':
  [ActivityManager] Do not add service to reschedule after removing users.
2015-04-07 03:55:38 +00:00
Olawale Ogunwale
437db6106b Merge "[ActivityManager] Do not add service to reschedule after removing users." 2015-04-07 03:36:30 +00:00
riddle_hsu
ddc74155c9 [ActivityManager] Improve task order of getRunningTasks.
Symptom:
During switching task in same stack, the first result
of getRunningTasks will be the behind stack's top task.
e.g.
 App Task X is starting task Y, the first entry may be home.

Root Cause:
TaskRecord's lastActiveTime is updated when pausing
or resuming. When X task launch a new task Y, Y is
on the top of task history, before X complete pause,
Y's lastActiveTime will be 0 because it is a new task.
Then when comparing the front task with other stack,
other stack will be regarded as the newer one.

Solution:
If the stack is focused stack, give the top task with the last time.

Change-Id: I0adc07608e03d333e0120a0dbc52a0fbbbb12f34
2015-04-07 11:30:09 +08:00
Fyodor Kupolov
36b26adde8 Unnecessary dexopt in installPackageLI
When a new package is created, installNewPackageLI does not need to call
dexopt, since it has already been made.

Bug: 19550105
Bug: 20087446
Change-Id: If6b05bea590eea5f95efebb22a67ccd8cdf632c2
2015-04-06 19:04:08 -07:00
Matthew Williams
679572ca96 am 0b3673c4: am 20baa9d9: am 28358eae: Merge "Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test." into lmp-mr1-dev
* commit '0b3673c4d39c07779081ef2eaf8705cbad1ee04c':
  Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test.
2015-04-06 20:53:26 +00:00
Matthew Williams
0b3673c4d3 am 20baa9d9: am 28358eae: Merge "Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test." into lmp-mr1-dev
* commit '20baa9d944ccb504d0fdf7ce2e553bca9ca2f672':
  Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test.
2015-04-06 20:43:30 +00:00
Matthew Williams
20baa9d944 am 28358eae: Merge "Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test." into lmp-mr1-dev
* commit '28358eaed2e1858fcba7991cbd7199a25d160471':
  Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test.
2015-04-06 20:30:29 +00:00
Matthew Williams
28358eaed2 Merge "Fixing to fail android.JobScheduler.TimingConstraintsTest#testSchedulePeriodic in TV test." into lmp-mr1-dev 2015-04-06 20:22:22 +00:00
Robert Greenwalt
778f47e5af am 069f4cbc: Merge "Fix memory leak in Connectivity Service when phone app crashes"
* commit '069f4cbccb651d98e4c50eca4698624ea089804d':
  Fix memory leak in Connectivity Service when phone app crashes
2015-04-06 17:54:18 +00:00
Robert Greenwalt
069f4cbccb Merge "Fix memory leak in Connectivity Service when phone app crashes" 2015-04-06 17:34:51 +00:00
Olawale Ogunwale
1d065987eb am 47c1cf4b: Merge "[ActivityManager] Fix ServiceRecord leakage"
* commit '47c1cf4b35616059409a0674382c2318494e877b':
  [ActivityManager] Fix ServiceRecord leakage
2015-04-06 15:44:31 +00:00
Olawale Ogunwale
adedb407c5 am 655ef081: Merge "[ActivityManager] Examine bad process before clean up application record"
* commit '655ef08144ec0b71a98b6b3a38e50c6b346ae467':
  [ActivityManager] Examine bad process before clean up application record
2015-04-06 15:44:24 +00:00
Olawale Ogunwale
694a8ef938 am baedbfbb: Merge "[ProcessStas] fix index out of bounds when add duration."
* commit 'baedbfbbb1181829bcffb1be3732b6f26a315bd8':
  [ProcessStas] fix index out of bounds when add duration.
2015-04-06 15:44:08 +00:00
Olawale Ogunwale
47c1cf4b35 Merge "[ActivityManager] Fix ServiceRecord leakage" 2015-04-06 15:25:04 +00:00
Olawale Ogunwale
655ef08144 Merge "[ActivityManager] Examine bad process before clean up application record" 2015-04-06 15:24:41 +00:00
Olawale Ogunwale
baedbfbbb1 Merge "[ProcessStas] fix index out of bounds when add duration." 2015-04-06 15:23:30 +00:00
Olawale Ogunwale
972099c752 am 1d359daa: Merge "Remove the window whose client process has died or become zombie"
* commit '1d359daa607042417d095aaa83b78befc1b5f8a3':
  Remove the window whose client process has died or become zombie
2015-04-04 16:29:32 +00:00
Maunik Shah
4b647f4c4d Fix memory leak in Connectivity Service when phone app crashes
Upon crash of com.android.phone process, NetworkFactoryInfo is
not getting removed from HashMap and will get accumulated on
every start of the process.

Change-Id: Iafde28daddfc82728c03208522682b1efc85a121
2015-04-04 21:48:24 +05:30
Olawale Ogunwale
1d359daa60 Merge "Remove the window whose client process has died or become zombie" 2015-04-04 16:12:40 +00:00
Wale Ogunwale
fce4220b88 am 5fd6b139: am 4a7967ad: am f61aee97: Merge "[DO NOT MERGE] Fixed NPE when trying to animate a window without display" into lmp-mr1-dev
* commit '5fd6b139033bcaab52921473ab3998725e157002':
  [DO NOT MERGE] Fixed NPE when trying to animate a window without display
2015-04-03 00:36:56 +00:00
Wale Ogunwale
5fd6b13903 am 4a7967ad: am f61aee97: Merge "[DO NOT MERGE] Fixed NPE when trying to animate a window without display" into lmp-mr1-dev
* commit '4a7967ad9ac76d8b9d6285bc367c33d1b6c83235':
  [DO NOT MERGE] Fixed NPE when trying to animate a window without display
2015-04-03 00:26:49 +00:00
Wale Ogunwale
4a7967ad9a am f61aee97: Merge "[DO NOT MERGE] Fixed NPE when trying to animate a window without display" into lmp-mr1-dev
* commit 'f61aee97adf4e543e82289511c6127bcfa53151c':
  [DO NOT MERGE] Fixed NPE when trying to animate a window without display
2015-04-03 00:15:26 +00:00
Wale Ogunwale
70e12aa123 [DO NOT MERGE] Fixed NPE when trying to animate a window without display
In some cases it is possible for the AppToken.allAppWindows list to
get out of sync with the list of windows known to WMS if the client
doesn't call Session.remove(Window). This can lead to an NPE when
the animation threads runs and the display for the window has been
removed.

Bug: 19972099
Change-Id: Ifdf9ff2364b96757bba0539394c4a682f64577c9
2015-04-02 16:38:52 -07:00
Fyodor Kupolov
031898dfd2 am 3d8b7f4d: Merge "Support for storing OAT files in app directory"
* commit '3d8b7f4d50c2f7c64ec4e5874fd95cf837ddc12e':
  Support for storing OAT files in app directory
2015-04-02 23:27:38 +00:00
Fyodor Kupolov
3d8b7f4d50 Merge "Support for storing OAT files in app directory" 2015-04-02 23:11:11 +00:00
younghwan1.kim
cd005ebf76 [ActivityManager] Do not add service to reschedule after removing users.
Some service which has persistent attribute has restarted again and
again after removing users.
but it dies right after launching because it is not valid in owner mode.

This patch will check service's userId whether userId is alive or not.
And then if userId is not alive, then service will bring down.

Change-Id: Id99bf3c651b88e377f1fd6bec8aaad81318d7579
2015-04-03 08:08:30 +09:00
Olawale Ogunwale
9987b6e867 am e4d4e22f: Merge "[ActivityManager] Avoid improper resume top activity."
* commit 'e4d4e22f26bfd36a553fb24232d2fd4ddf4fc907':
  [ActivityManager] Avoid improper resume top activity.
2015-04-02 17:00:12 +00:00
Olawale Ogunwale
e4d4e22f26 Merge "[ActivityManager] Avoid improper resume top activity." 2015-04-02 16:39:18 +00:00
riddle_hsu
558e849a77 [ActivityManager] Avoid improper resume top activity.
When there is a process died, only resume top if
it contains visible activity.

This can fix case 1 in
https://android-review.googlesource.com/#/c/120901/

Change-Id: I45584e76f9e863980d04bbb593d7d26a8900acd0
2015-04-02 16:43:13 +08:00
tiger_huang
950ee77fc7 Remove the window whose client process has died or become zombie
Window Manager Service would fail to report window-resized to the
process which has become zombie. This would cause the window to
freeze screen continuously. In this case, we assume the process has
died and remove its window to recycle resources and to prevent it from
freezing the screen.

Change-Id: Ic7384731bf9a1fa8b9602d4f1dbee7492db126c5
2015-04-02 06:42:18 +00:00
Olawale Ogunwale
4e88ecf4bc am 086071e7: Merge "[ActivityManager] Reduce report wrong anr activity"
* commit '086071e7306a73c9b3c5a56277884b4e19543b3e':
  [ActivityManager] Reduce report wrong anr activity
2015-04-01 17:56:53 +00:00
Ronnie Leng
4c5c6f43dd [ProcessStas] fix index out of bounds when add duration.
Root Cause:
There is a defect in current ProcessStats design
and following is the scenario:
1. Process A is started due to activity with
name of A
2. Process A creates ProessState with application
uid of A
3. Process B is started due to isolated service
declared in application A with name of A
4. Process B uses ProcessState of Process A as
it uses same application uid of A
5. Process B is finished and it leads to
ProcessState marked as dead
6. Process A still keeps using the invalid
ProcessState in dead state
7. IndexOutOfBoundsException is triggered when
system tries to update process state of Process A

Resolution:
use process uid to replace application uid for
getProcessStatLocked.

Change-Id: I881ad9fc492c9e1a892c9e957180cebcfef8352d
Signed-off-by: Ronnie Leng <ronnie.leng@gmail.com>
2015-04-01 11:23:45 -05:00
riddle_hsu
db46d6b074 [ActivityManager] Reduce report wrong anr activity
Symptom:
Report ANR on wrong activity.

Reproduce steps:
 (All launchMode, taskAffinity are default and
  without additional intent flag)
 Case 1:
  1.Launch activity A from launcher.
  2.Activity A starts B activity.
  3.Press home key.
  4.Launch activity A from launcher (B is top).
  5.Press back key twice to finish B and A,
    A sleep 10s in onResume.
  6.ANR will report on launcher.

 Case 2:
  1.Launch activity A from launcher.
  2.Press home key.
  3.Kill process of A.
  4.Launch activity A from launcher.
  5.A sleep 10s in onResume, press back key immediately.
  6.ANR will report on launcher.

Possible root cause:
Focused activity will not be updated every time when activity
resumed. (the condition to call setFocusedActivityLocked)

Case 1:
Launcher was stopped and not waitingVisible due to launcher
is not the previous one, then getWaitingHistoryRecordLocked
has no chance to correct the real ANR activity.

Case 2:
Due to process of next activity is died, bring existed
task will not set mResumedActivity (it will be set when its
process is started), so when assigning waitingVisible from
processStoppingActivitiesLocked, the return value of
allResumedActivitiesVisible will be true even there is no
mResumedActivity. That results set waitingVisible to false
to previous activity (e.g. launcher), then also cannot
correct ANR target as case 1.

Change-Id: I0b24f46a8fab266382ebc6e2ed84ebeca9358768
2015-04-01 18:58:07 +08:00
Craig Mautner
8bed4843dc am d720dedb: Merge "Clear the previous states before setting the new app visibility"
* commit 'd720dedb03dfc937361e7e722171f8a1b9d74cf1':
  Clear the previous states before setting the new app visibility
2015-04-01 01:27:34 +00:00
Craig Mautner
d720dedb03 Merge "Clear the previous states before setting the new app visibility" 2015-03-31 22:24:15 +00:00
Olawale Ogunwale
df736de8d8 am d052a3d3: Merge "[ActivityManager] Fix index out of bounds when updating next pss time."
* commit 'd052a3d37beffff3735716340745ec7c83efc23d':
  [ActivityManager] Fix index out of bounds when updating next pss time.
2015-03-31 16:21:03 +00:00
Olawale Ogunwale
d052a3d37b Merge "[ActivityManager] Fix index out of bounds when updating next pss time." 2015-03-31 16:09:16 +00:00
Neil Fuller
efd9290789 am 25c5296b: Merge "An updater for all timezone data on a device"
* commit '25c5296b0d85979ad216195000b857dce8127ab1':
  An updater for all timezone data on a device
2015-03-31 09:31:48 +00:00
Neil Fuller
25c5296b0d Merge "An updater for all timezone data on a device" 2015-03-31 08:31:00 +00:00
louis_chang
5064fddf81 [ActivityManager] Examine bad process before clean up application
record

Symptom:
Unable to launch activity

Root cause:
There are some cases that would start process while pid
assigned or already running. So the previous application
record will be clean up via handleAppDiedLocked(), but it
won't be removed from ActivityManager.mProcessNames since
the process is supposed to be restart later.

However, if the process is started from a background
operation and has named as a bad process, it silently fail
the launch. Then, the process won't ever be request to
start afterward. The process status is app.pid > 0 and
app.thread is null.

The application components are unable to launch since then.

Solution:
Examine bad process before clean up application record

Change-Id: I53dc06e49254094abc06e460c8b8b33f36803601
2015-03-31 15:18:21 +08:00
riddle_hsu
6793fc328a [ActivityManager] Fix index out of bounds when updating next pss time.
Symptom:
System server crash.

Root Cause:
The value curProcState for array index is -1 if the process
has not attached yet.

Solution:
Skip computing for process which is not attached or curProcState
is nonexistent state.

Change-Id: I71aaf45bb78d73097ebe9dfebf76b72f2d243232
2015-03-31 11:54:14 +08:00
Olawale Ogunwale
5670d9a250 am 4af5bd7c: Merge "Add ProcessInfoService to activity manager."
* commit '4af5bd7cdaccdba6001a384a81c258f542e74075':
  Add ProcessInfoService to activity manager.
2015-03-30 23:25:15 +00:00
Ruben Brunk
e1e1969c96 Add ProcessInfoService to activity manager.
- Adds a new AIDL interface for querying process
  information from activity manager.

Bug: 19186859
Change-Id: Ic08858f346d6b66e7bfc9da6faa2c6e38d9b2e82
2015-03-30 12:20:16 -07:00
Fyodor Kupolov
b94c1657eb Support for storing OAT files in app directory
In installPackageLI, dexopt is now performed on a staging directory of the app
(dexopt phase 1). For each codepath:
 - /oat/<isa> directory is created
 - dexopt output goes to the newly created directory. Optimized files have
   .odex extension.

Bug: 19550105
Change-Id: Iec59790d97837b78af82b079fd1970de3388c91d
2015-03-30 11:32:56 -07:00