Main.h revision fab50875b98e8274ac8ee44b38ba42521bbbf1f9
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);
39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern int calcPercent(long uncompressedLen, long compressedLen);
41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t writeAPK(Bundle* bundle,
43fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    const android::String8& outputFile,
44fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    const android::sp<OutputSet>& outputSet);
45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t updatePreProcessedCache(Bundle* bundle);
47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t buildResources(Bundle* bundle,
49fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    const sp<AaptAssets>& assets, sp<ApkBuilder>& builder);
50282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t writeResourceSymbols(Bundle* bundle,
52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski    const sp<AaptAssets>& assets, const String8& pkgName, bool includePrivate);
53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
54282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern android::status_t writeProguardFile(Bundle* bundle, const sp<AaptAssets>& assets);
55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern bool isValidResourceType(const String8& type);
57282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiextern status_t filterResources(Bundle* bundle, const sp<AaptAssets>& assets);
59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiint dumpResources(Bundle* bundle);
61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
62282e181b58cf72b6ca770dc7ca5f91f135444502Adam LesinskiString8 getAttribute(const ResXMLTree& tree, const char* ns,
63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski                            const char* attr, String8* outError);
64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski
65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskistatus_t writeDependencyPreReqs(Bundle* bundle, const sp<AaptAssets>& assets,
66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski                                FILE* fp, bool includeRaw);
67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski#endif // __MAIN_H
68