xref: /aosp_15_r20/frameworks/base/tools/preload/PrintPsTree.java (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker /*
2*d57664e9SAndroid Build Coastguard Worker  * Copyright (C) 2008 The Android Open Source Project
3*d57664e9SAndroid Build Coastguard Worker  *
4*d57664e9SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*d57664e9SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*d57664e9SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*d57664e9SAndroid Build Coastguard Worker  *
8*d57664e9SAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*d57664e9SAndroid Build Coastguard Worker  *
10*d57664e9SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*d57664e9SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*d57664e9SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*d57664e9SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*d57664e9SAndroid Build Coastguard Worker  * limitations under the License.
15*d57664e9SAndroid Build Coastguard Worker  */
16*d57664e9SAndroid Build Coastguard Worker 
17*d57664e9SAndroid Build Coastguard Worker import java.io.IOException;
18*d57664e9SAndroid Build Coastguard Worker import java.io.FileInputStream;
19*d57664e9SAndroid Build Coastguard Worker import java.io.ObjectInputStream;
20*d57664e9SAndroid Build Coastguard Worker import java.io.BufferedInputStream;
21*d57664e9SAndroid Build Coastguard Worker 
22*d57664e9SAndroid Build Coastguard Worker /**
23*d57664e9SAndroid Build Coastguard Worker  * Prints raw information in CSV format.
24*d57664e9SAndroid Build Coastguard Worker  */
25*d57664e9SAndroid Build Coastguard Worker public class PrintPsTree {
26*d57664e9SAndroid Build Coastguard Worker 
main(String[] args)27*d57664e9SAndroid Build Coastguard Worker     public static void main(String[] args)
28*d57664e9SAndroid Build Coastguard Worker             throws IOException, ClassNotFoundException {
29*d57664e9SAndroid Build Coastguard Worker         if (args.length != 1) {
30*d57664e9SAndroid Build Coastguard Worker             System.err.println("Usage: PrintCsv [compiled log file]");
31*d57664e9SAndroid Build Coastguard Worker             System.exit(0);
32*d57664e9SAndroid Build Coastguard Worker         }
33*d57664e9SAndroid Build Coastguard Worker 
34*d57664e9SAndroid Build Coastguard Worker         FileInputStream fin = new FileInputStream(args[0]);
35*d57664e9SAndroid Build Coastguard Worker         ObjectInputStream oin = new ObjectInputStream(
36*d57664e9SAndroid Build Coastguard Worker                 new BufferedInputStream(fin));
37*d57664e9SAndroid Build Coastguard Worker 
38*d57664e9SAndroid Build Coastguard Worker         Root root = (Root) oin.readObject();
39*d57664e9SAndroid Build Coastguard Worker 
40*d57664e9SAndroid Build Coastguard Worker         for (Proc proc : root.processes.values()) {
41*d57664e9SAndroid Build Coastguard Worker             if (proc.parent == null) {
42*d57664e9SAndroid Build Coastguard Worker                 proc.print();
43*d57664e9SAndroid Build Coastguard Worker             }
44*d57664e9SAndroid Build Coastguard Worker         }
45*d57664e9SAndroid Build Coastguard Worker     }
46*d57664e9SAndroid Build Coastguard Worker }
47