1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski//
2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski// Copyright 2006 The Android Open Source Project
3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski//
4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski// Some global defines that don't really merit their own header.
5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski//
6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#ifndef __MAIN_H
7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#define __MAIN_H
8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include <utils/Log.h>
10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include <utils/threads.h>
11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include <utils/List.h>
12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include <utils/Errors.h>
13fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#include <utils/StrongPointer.h>
14fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include "AaptAssets.h"
16fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#include "ApkBuilder.h"
17fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#include "Bundle.h"
18fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#include "ResourceFilter.h"
19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#include "ZipFile.h"
20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
22282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/* Benchmarking Flag */
23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski//#define BENCHMARK 1
24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#if BENCHMARK
26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    #include <time.h>
27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#endif /* BENCHMARK */
28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
29fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiclass OutputSet;
30fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doVersion(Bundle* bundle);
32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doList(Bundle* bundle);
33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doDump(Bundle* bundle);
34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doAdd(Bundle* bundle);
35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doRemove(Bundle* bundle);
36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doPackage(Bundle* bundle);
37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doCrunch(Bundle* bundle);
38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int doSingleCrunch(Bundle* bundle);
396f1280cf170b358a57ff70341a9f2ad224e5a662Jerome Dochezextern int runInDaemonMode(Bundle* bundle);
40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int calcPercent(long uncompressedLen, long compressedLen);
42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t writeAPK(Bundle* bundle,
44fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    const android::String8& outputFile,
45fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    const android::sp<OutputSet>& outputSet);
46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t updatePreProcessedCache(Bundle* bundle);
48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t buildResources(Bundle* bundle,
50fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    const sp<AaptAssets>& assets, sp<ApkBuilder>& builder);
51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t writeResourceSymbols(Bundle* bundle,
531e466385d4a4f1acee080fa0fdf16cc8fd8ce7caAdam Lesinski        const sp<AaptAssets>& assets, const String8& pkgName,
541e466385d4a4f1acee080fa0fdf16cc8fd8ce7caAdam Lesinski        bool includePrivate, bool emitCallback);
55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t writeProguardFile(Bundle* bundle, const sp<AaptAssets>& assets);
5786229cb622fccde8ab8cbe85eead91a34313a708Rohit Agrawalextern android::status_t writeMainDexProguardFile(Bundle* bundle, const sp<AaptAssets>& assets);
58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern bool isValidResourceType(const String8& type);
60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern status_t filterResources(Bundle* bundle, const sp<AaptAssets>& assets);
62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiint dumpResources(Bundle* bundle);
64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskistatus_t writeDependencyPreReqs(Bundle* bundle, const sp<AaptAssets>& assets,
66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski                                FILE* fp, bool includeRaw);
67e572c011feabf6319ba836cf5bc4c3baa0ba6a85Adam Lesinski
68e572c011feabf6319ba836cf5bc4c3baa0ba6a85Adam Lesinskiandroid::String8 parseResourceName(const String8& pathLeaf);
69e572c011feabf6319ba836cf5bc4c3baa0ba6a85Adam Lesinski
70282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#endif // __MAIN_H
71