diff options
author | 2014-11-14 14:48:12 -0800 | |
---|---|---|
committer | 2015-04-02 17:02:48 -0700 | |
commit | 6f6ceb7e1456698b1f33e04536bfb3227f9fcfcb (patch) | |
tree | 0a1f8e354c4714f162f849b09a5d5da757c6d5b8 /tools/aapt2/Resource.cpp | |
parent | 041ca26d028ae314d416cb107721ea7267af6aca (diff) |
AAPT2
First checking of AAPT2. The individual phases of AAPT2 work, but there
are some missing pieces.
For early testing we are missing:
- Need to properly mark file references and include them in package
- Need to package into zip
Final AAPT for apps we are missing:
- Need to crush PNGs
- Need to parse 9-patches
- Need to validate all of AndroidManifest.xml
- Need to write align method to align resource tables for splits.
Final AAPT for apps + system we are missing:
- Need to handle overlays
- Need to store comments for R file
- Need to handle --shared-lib (dynamic references too).
New AAPT features coming:
- Need to import compiled libraries
- Name mangling
- R file generation for library code
Change-Id: I95f8a63581b81a1f424ae6fb2c373c883b72c18d
Diffstat (limited to 'tools/aapt2/Resource.cpp')
-rw-r--r-- | tools/aapt2/Resource.cpp | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tools/aapt2/Resource.cpp b/tools/aapt2/Resource.cpp new file mode 100644 index 000000000000..287d8de1b767 --- /dev/null +++ b/tools/aapt2/Resource.cpp @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "Resource.h" +#include "StringPiece.h" + +#include <map> +#include <string> + +namespace aapt { + +StringPiece16 toString(ResourceType type) { + switch (type) { + case ResourceType::kAnim: return u"anim"; + case ResourceType::kAnimator: return u"animator"; + case ResourceType::kArray: return u"array"; + case ResourceType::kAttr: return u"attr"; + case ResourceType::kAttrPrivate: return u"attr"; + case ResourceType::kBool: return u"bool"; + case ResourceType::kColor: return u"color"; + case ResourceType::kDimen: return u"dimen"; + case ResourceType::kDrawable: return u"drawable"; + case ResourceType::kFraction: return u"fraction"; + case ResourceType::kId: return u"id"; + case ResourceType::kInteger: return u"integer"; + case ResourceType::kIntegerArray: return u"integer-array"; + case ResourceType::kInterpolator: return u"interpolator"; + case ResourceType::kLayout: return u"layout"; + case ResourceType::kMenu: return u"menu"; + case ResourceType::kMipmap: return u"mipmap"; + case ResourceType::kPlurals: return u"plurals"; + case ResourceType::kRaw: return u"raw"; + case ResourceType::kString: return u"string"; + case ResourceType::kStyle: return u"style"; + case ResourceType::kStyleable: return u"styleable"; + case ResourceType::kTransition: return u"transition"; + case ResourceType::kXml: return u"xml"; + } + return {}; +} + +static const std::map<StringPiece16, ResourceType> sResourceTypeMap { + { u"anim", ResourceType::kAnim }, + { u"animator", ResourceType::kAnimator }, + { u"array", ResourceType::kArray }, + { u"attr", ResourceType::kAttr }, + { u"^attr-private", ResourceType::kAttrPrivate }, + { u"bool", ResourceType::kBool }, + { u"color", ResourceType::kColor }, + { u"dimen", ResourceType::kDimen }, + { u"drawable", ResourceType::kDrawable }, + { u"fraction", ResourceType::kFraction }, + { u"id", ResourceType::kId }, + { u"integer", ResourceType::kInteger }, + { u"integer-array", ResourceType::kIntegerArray }, + { u"interpolator", ResourceType::kInterpolator }, + { u"layout", ResourceType::kLayout }, + { u"menu", ResourceType::kMenu }, + { u"mipmap", ResourceType::kMipmap }, + { u"plurals", ResourceType::kPlurals }, + { u"raw", ResourceType::kRaw }, + { u"string", ResourceType::kString }, + { u"style", ResourceType::kStyle }, + { u"styleable", ResourceType::kStyleable }, + { u"transition", ResourceType::kTransition }, + { u"xml", ResourceType::kXml }, +}; + +const ResourceType* parseResourceType(const StringPiece16& str) { + auto iter = sResourceTypeMap.find(str); + if (iter == std::end(sResourceTypeMap)) { + return nullptr; + } + return &iter->second; +} + +} // namespace aapt |