AAPT2: Remove usage of u16string

For legacy reasons, we kept around the use of UTF-16 internally
in AAPT2. We don't need this and this CL removes all instances of
std::u16string and StringPiece16. The only places still needed
are when interacting with the ResTable APIs that only operate in
UTF16.

Change-Id: I492475b84bb9014fa13bf992cff447ee7a5fe588
diff --git a/tools/aapt2/SdkConstants.cpp b/tools/aapt2/SdkConstants.cpp
index 7312ee3..91e755d 100644
--- a/tools/aapt2/SdkConstants.cpp
+++ b/tools/aapt2/SdkConstants.cpp
@@ -23,7 +23,7 @@
 
 namespace aapt {
 
-static const char16_t* sDevelopmentSdkCodeName = u"O";
+static const char* sDevelopmentSdkCodeName = "O";
 static int sDevelopmentSdkLevel = 26;
 
 static const std::vector<std::pair<uint16_t, size_t>> sAttrIdMap = {
@@ -63,671 +63,671 @@
     return iter->second;
 }
 
-static const std::unordered_map<std::u16string, size_t> sAttrMap = {
-    { u"marqueeRepeatLimit", 2 },
-    { u"windowNoDisplay", 3 },
-    { u"backgroundDimEnabled", 3 },
-    { u"inputType", 3 },
-    { u"isDefault", 3 },
-    { u"windowDisablePreview", 3 },
-    { u"privateImeOptions", 3 },
-    { u"editorExtras", 3 },
-    { u"settingsActivity", 3 },
-    { u"fastScrollEnabled", 3 },
-    { u"reqTouchScreen", 3 },
-    { u"reqKeyboardType", 3 },
-    { u"reqHardKeyboard", 3 },
-    { u"reqNavigation", 3 },
-    { u"windowSoftInputMode", 3 },
-    { u"imeFullscreenBackground", 3 },
-    { u"noHistory", 3 },
-    { u"headerDividersEnabled", 3 },
-    { u"footerDividersEnabled", 3 },
-    { u"candidatesTextStyleSpans", 3 },
-    { u"smoothScrollbar", 3 },
-    { u"reqFiveWayNav", 3 },
-    { u"keyBackground", 3 },
-    { u"keyTextSize", 3 },
-    { u"labelTextSize", 3 },
-    { u"keyTextColor", 3 },
-    { u"keyPreviewLayout", 3 },
-    { u"keyPreviewOffset", 3 },
-    { u"keyPreviewHeight", 3 },
-    { u"verticalCorrection", 3 },
-    { u"popupLayout", 3 },
-    { u"state_long_pressable", 3 },
-    { u"keyWidth", 3 },
-    { u"keyHeight", 3 },
-    { u"horizontalGap", 3 },
-    { u"verticalGap", 3 },
-    { u"rowEdgeFlags", 3 },
-    { u"codes", 3 },
-    { u"popupKeyboard", 3 },
-    { u"popupCharacters", 3 },
-    { u"keyEdgeFlags", 3 },
-    { u"isModifier", 3 },
-    { u"isSticky", 3 },
-    { u"isRepeatable", 3 },
-    { u"iconPreview", 3 },
-    { u"keyOutputText", 3 },
-    { u"keyLabel", 3 },
-    { u"keyIcon", 3 },
-    { u"keyboardMode", 3 },
-    { u"isScrollContainer", 3 },
-    { u"fillEnabled", 3 },
-    { u"updatePeriodMillis", 3 },
-    { u"initialLayout", 3 },
-    { u"voiceSearchMode", 3 },
-    { u"voiceLanguageModel", 3 },
-    { u"voicePromptText", 3 },
-    { u"voiceLanguage", 3 },
-    { u"voiceMaxResults", 3 },
-    { u"bottomOffset", 3 },
-    { u"topOffset", 3 },
-    { u"allowSingleTap", 3 },
-    { u"handle", 3 },
-    { u"content", 3 },
-    { u"animateOnClick", 3 },
-    { u"configure", 3 },
-    { u"hapticFeedbackEnabled", 3 },
-    { u"innerRadius", 3 },
-    { u"thickness", 3 },
-    { u"sharedUserLabel", 3 },
-    { u"dropDownWidth", 3 },
-    { u"dropDownAnchor", 3 },
-    { u"imeOptions", 3 },
-    { u"imeActionLabel", 3 },
-    { u"imeActionId", 3 },
-    { u"imeExtractEnterAnimation", 3 },
-    { u"imeExtractExitAnimation", 3 },
-    { u"tension", 4 },
-    { u"extraTension", 4 },
-    { u"anyDensity", 4 },
-    { u"searchSuggestThreshold", 4 },
-    { u"includeInGlobalSearch", 4 },
-    { u"onClick", 4 },
-    { u"targetSdkVersion", 4 },
-    { u"maxSdkVersion", 4 },
-    { u"testOnly", 4 },
-    { u"contentDescription", 4 },
-    { u"gestureStrokeWidth", 4 },
-    { u"gestureColor", 4 },
-    { u"uncertainGestureColor", 4 },
-    { u"fadeOffset", 4 },
-    { u"fadeDuration", 4 },
-    { u"gestureStrokeType", 4 },
-    { u"gestureStrokeLengthThreshold", 4 },
-    { u"gestureStrokeSquarenessThreshold", 4 },
-    { u"gestureStrokeAngleThreshold", 4 },
-    { u"eventsInterceptionEnabled", 4 },
-    { u"fadeEnabled", 4 },
-    { u"backupAgent", 4 },
-    { u"allowBackup", 4 },
-    { u"glEsVersion", 4 },
-    { u"queryAfterZeroResults", 4 },
-    { u"dropDownHeight", 4 },
-    { u"smallScreens", 4 },
-    { u"normalScreens", 4 },
-    { u"largeScreens", 4 },
-    { u"progressBarStyleInverse", 4 },
-    { u"progressBarStyleSmallInverse", 4 },
-    { u"progressBarStyleLargeInverse", 4 },
-    { u"searchSettingsDescription", 4 },
-    { u"textColorPrimaryInverseDisableOnly", 4 },
-    { u"autoUrlDetect", 4 },
-    { u"resizeable", 4 },
-    { u"required", 5 },
-    { u"accountType", 5 },
-    { u"contentAuthority", 5 },
-    { u"userVisible", 5 },
-    { u"windowShowWallpaper", 5 },
-    { u"wallpaperOpenEnterAnimation", 5 },
-    { u"wallpaperOpenExitAnimation", 5 },
-    { u"wallpaperCloseEnterAnimation", 5 },
-    { u"wallpaperCloseExitAnimation", 5 },
-    { u"wallpaperIntraOpenEnterAnimation", 5 },
-    { u"wallpaperIntraOpenExitAnimation", 5 },
-    { u"wallpaperIntraCloseEnterAnimation", 5 },
-    { u"wallpaperIntraCloseExitAnimation", 5 },
-    { u"supportsUploading", 5 },
-    { u"killAfterRestore", 5 },
-    { u"restoreNeedsApplication", 5 },
-    { u"smallIcon", 5 },
-    { u"accountPreferences", 5 },
-    { u"textAppearanceSearchResultSubtitle", 5 },
-    { u"textAppearanceSearchResultTitle", 5 },
-    { u"summaryColumn", 5 },
-    { u"detailColumn", 5 },
-    { u"detailSocialSummary", 5 },
-    { u"thumbnail", 5 },
-    { u"detachWallpaper", 5 },
-    { u"finishOnCloseSystemDialogs", 5 },
-    { u"scrollbarFadeDuration", 5 },
-    { u"scrollbarDefaultDelayBeforeFade", 5 },
-    { u"fadeScrollbars", 5 },
-    { u"colorBackgroundCacheHint", 5 },
-    { u"dropDownHorizontalOffset", 5 },
-    { u"dropDownVerticalOffset", 5 },
-    { u"quickContactBadgeStyleWindowSmall", 6 },
-    { u"quickContactBadgeStyleWindowMedium", 6 },
-    { u"quickContactBadgeStyleWindowLarge", 6 },
-    { u"quickContactBadgeStyleSmallWindowSmall", 6 },
-    { u"quickContactBadgeStyleSmallWindowMedium", 6 },
-    { u"quickContactBadgeStyleSmallWindowLarge", 6 },
-    { u"author", 7 },
-    { u"autoStart", 7 },
-    { u"expandableListViewWhiteStyle", 8 },
-    { u"installLocation", 8 },
-    { u"vmSafeMode", 8 },
-    { u"webTextViewStyle", 8 },
-    { u"restoreAnyVersion", 8 },
-    { u"tabStripLeft", 8 },
-    { u"tabStripRight", 8 },
-    { u"tabStripEnabled", 8 },
-    { u"logo", 9 },
-    { u"xlargeScreens", 9 },
-    { u"immersive", 9 },
-    { u"overScrollMode", 9 },
-    { u"overScrollHeader", 9 },
-    { u"overScrollFooter", 9 },
-    { u"filterTouchesWhenObscured", 9 },
-    { u"textSelectHandleLeft", 9 },
-    { u"textSelectHandleRight", 9 },
-    { u"textSelectHandle", 9 },
-    { u"textSelectHandleWindowStyle", 9 },
-    { u"popupAnimationStyle", 9 },
-    { u"screenSize", 9 },
-    { u"screenDensity", 9 },
-    { u"allContactsName", 11 },
-    { u"windowActionBar", 11 },
-    { u"actionBarStyle", 11 },
-    { u"navigationMode", 11 },
-    { u"displayOptions", 11 },
-    { u"subtitle", 11 },
-    { u"customNavigationLayout", 11 },
-    { u"hardwareAccelerated", 11 },
-    { u"measureWithLargestChild", 11 },
-    { u"animateFirstView", 11 },
-    { u"dropDownSpinnerStyle", 11 },
-    { u"actionDropDownStyle", 11 },
-    { u"actionButtonStyle", 11 },
-    { u"showAsAction", 11 },
-    { u"previewImage", 11 },
-    { u"actionModeBackground", 11 },
-    { u"actionModeCloseDrawable", 11 },
-    { u"windowActionModeOverlay", 11 },
-    { u"valueFrom", 11 },
-    { u"valueTo", 11 },
-    { u"valueType", 11 },
-    { u"propertyName", 11 },
-    { u"ordering", 11 },
-    { u"fragment", 11 },
-    { u"windowActionBarOverlay", 11 },
-    { u"fragmentOpenEnterAnimation", 11 },
-    { u"fragmentOpenExitAnimation", 11 },
-    { u"fragmentCloseEnterAnimation", 11 },
-    { u"fragmentCloseExitAnimation", 11 },
-    { u"fragmentFadeEnterAnimation", 11 },
-    { u"fragmentFadeExitAnimation", 11 },
-    { u"actionBarSize", 11 },
-    { u"imeSubtypeLocale", 11 },
-    { u"imeSubtypeMode", 11 },
-    { u"imeSubtypeExtraValue", 11 },
-    { u"splitMotionEvents", 11 },
-    { u"listChoiceBackgroundIndicator", 11 },
-    { u"spinnerMode", 11 },
-    { u"animateLayoutChanges", 11 },
-    { u"actionBarTabStyle", 11 },
-    { u"actionBarTabBarStyle", 11 },
-    { u"actionBarTabTextStyle", 11 },
-    { u"actionOverflowButtonStyle", 11 },
-    { u"actionModeCloseButtonStyle", 11 },
-    { u"titleTextStyle", 11 },
-    { u"subtitleTextStyle", 11 },
-    { u"iconifiedByDefault", 11 },
-    { u"actionLayout", 11 },
-    { u"actionViewClass", 11 },
-    { u"activatedBackgroundIndicator", 11 },
-    { u"state_activated", 11 },
-    { u"listPopupWindowStyle", 11 },
-    { u"popupMenuStyle", 11 },
-    { u"textAppearanceLargePopupMenu", 11 },
-    { u"textAppearanceSmallPopupMenu", 11 },
-    { u"breadCrumbTitle", 11 },
-    { u"breadCrumbShortTitle", 11 },
-    { u"listDividerAlertDialog", 11 },
-    { u"textColorAlertDialogListItem", 11 },
-    { u"loopViews", 11 },
-    { u"dialogTheme", 11 },
-    { u"alertDialogTheme", 11 },
-    { u"dividerVertical", 11 },
-    { u"homeAsUpIndicator", 11 },
-    { u"enterFadeDuration", 11 },
-    { u"exitFadeDuration", 11 },
-    { u"selectableItemBackground", 11 },
-    { u"autoAdvanceViewId", 11 },
-    { u"useIntrinsicSizeAsMinimum", 11 },
-    { u"actionModeCutDrawable", 11 },
-    { u"actionModeCopyDrawable", 11 },
-    { u"actionModePasteDrawable", 11 },
-    { u"textEditPasteWindowLayout", 11 },
-    { u"textEditNoPasteWindowLayout", 11 },
-    { u"textIsSelectable", 11 },
-    { u"windowEnableSplitTouch", 11 },
-    { u"indeterminateProgressStyle", 11 },
-    { u"progressBarPadding", 11 },
-    { u"animationResolution", 11 },
-    { u"state_accelerated", 11 },
-    { u"baseline", 11 },
-    { u"homeLayout", 11 },
-    { u"opacity", 11 },
-    { u"alpha", 11 },
-    { u"transformPivotX", 11 },
-    { u"transformPivotY", 11 },
-    { u"translationX", 11 },
-    { u"translationY", 11 },
-    { u"scaleX", 11 },
-    { u"scaleY", 11 },
-    { u"rotation", 11 },
-    { u"rotationX", 11 },
-    { u"rotationY", 11 },
-    { u"showDividers", 11 },
-    { u"dividerPadding", 11 },
-    { u"borderlessButtonStyle", 11 },
-    { u"dividerHorizontal", 11 },
-    { u"itemPadding", 11 },
-    { u"buttonBarStyle", 11 },
-    { u"buttonBarButtonStyle", 11 },
-    { u"segmentedButtonStyle", 11 },
-    { u"staticWallpaperPreview", 11 },
-    { u"allowParallelSyncs", 11 },
-    { u"isAlwaysSyncable", 11 },
-    { u"verticalScrollbarPosition", 11 },
-    { u"fastScrollAlwaysVisible", 11 },
-    { u"fastScrollThumbDrawable", 11 },
-    { u"fastScrollPreviewBackgroundLeft", 11 },
-    { u"fastScrollPreviewBackgroundRight", 11 },
-    { u"fastScrollTrackDrawable", 11 },
-    { u"fastScrollOverlayPosition", 11 },
-    { u"customTokens", 11 },
-    { u"nextFocusForward", 11 },
-    { u"firstDayOfWeek", 11 },
-    { u"showWeekNumber", 11 },
-    { u"minDate", 11 },
-    { u"maxDate", 11 },
-    { u"shownWeekCount", 11 },
-    { u"selectedWeekBackgroundColor", 11 },
-    { u"focusedMonthDateColor", 11 },
-    { u"unfocusedMonthDateColor", 11 },
-    { u"weekNumberColor", 11 },
-    { u"weekSeparatorLineColor", 11 },
-    { u"selectedDateVerticalBar", 11 },
-    { u"weekDayTextAppearance", 11 },
-    { u"dateTextAppearance", 11 },
-    { u"solidColor", 11 },
-    { u"spinnersShown", 11 },
-    { u"calendarViewShown", 11 },
-    { u"state_multiline", 11 },
-    { u"detailsElementBackground", 11 },
-    { u"textColorHighlightInverse", 11 },
-    { u"textColorLinkInverse", 11 },
-    { u"editTextColor", 11 },
-    { u"editTextBackground", 11 },
-    { u"horizontalScrollViewStyle", 11 },
-    { u"layerType", 11 },
-    { u"alertDialogIcon", 11 },
-    { u"windowMinWidthMajor", 11 },
-    { u"windowMinWidthMinor", 11 },
-    { u"queryHint", 11 },
-    { u"fastScrollTextColor", 11 },
-    { u"largeHeap", 11 },
-    { u"windowCloseOnTouchOutside", 11 },
-    { u"datePickerStyle", 11 },
-    { u"calendarViewStyle", 11 },
-    { u"textEditSidePasteWindowLayout", 11 },
-    { u"textEditSideNoPasteWindowLayout", 11 },
-    { u"actionMenuTextAppearance", 11 },
-    { u"actionMenuTextColor", 11 },
-    { u"textCursorDrawable", 12 },
-    { u"resizeMode", 12 },
-    { u"requiresSmallestWidthDp", 12 },
-    { u"compatibleWidthLimitDp", 12 },
-    { u"largestWidthLimitDp", 12 },
-    { u"state_hovered", 13 },
-    { u"state_drag_can_accept", 13 },
-    { u"state_drag_hovered", 13 },
-    { u"stopWithTask", 13 },
-    { u"switchTextOn", 13 },
-    { u"switchTextOff", 13 },
-    { u"switchPreferenceStyle", 13 },
-    { u"switchTextAppearance", 13 },
-    { u"track", 13 },
-    { u"switchMinWidth", 13 },
-    { u"switchPadding", 13 },
-    { u"thumbTextPadding", 13 },
-    { u"textSuggestionsWindowStyle", 13 },
-    { u"textEditSuggestionItemLayout", 13 },
-    { u"rowCount", 13 },
-    { u"rowOrderPreserved", 13 },
-    { u"columnCount", 13 },
-    { u"columnOrderPreserved", 13 },
-    { u"useDefaultMargins", 13 },
-    { u"alignmentMode", 13 },
-    { u"layout_row", 13 },
-    { u"layout_rowSpan", 13 },
-    { u"layout_columnSpan", 13 },
-    { u"actionModeSelectAllDrawable", 13 },
-    { u"isAuxiliary", 13 },
-    { u"accessibilityEventTypes", 13 },
-    { u"packageNames", 13 },
-    { u"accessibilityFeedbackType", 13 },
-    { u"notificationTimeout", 13 },
-    { u"accessibilityFlags", 13 },
-    { u"canRetrieveWindowContent", 13 },
-    { u"listPreferredItemHeightLarge", 13 },
-    { u"listPreferredItemHeightSmall", 13 },
-    { u"actionBarSplitStyle", 13 },
-    { u"actionProviderClass", 13 },
-    { u"backgroundStacked", 13 },
-    { u"backgroundSplit", 13 },
-    { u"textAllCaps", 13 },
-    { u"colorPressedHighlight", 13 },
-    { u"colorLongPressedHighlight", 13 },
-    { u"colorFocusedHighlight", 13 },
-    { u"colorActivatedHighlight", 13 },
-    { u"colorMultiSelectHighlight", 13 },
-    { u"drawableStart", 13 },
-    { u"drawableEnd", 13 },
-    { u"actionModeStyle", 13 },
-    { u"minResizeWidth", 13 },
-    { u"minResizeHeight", 13 },
-    { u"actionBarWidgetTheme", 13 },
-    { u"uiOptions", 13 },
-    { u"subtypeLocale", 13 },
-    { u"subtypeExtraValue", 13 },
-    { u"actionBarDivider", 13 },
-    { u"actionBarItemBackground", 13 },
-    { u"actionModeSplitBackground", 13 },
-    { u"textAppearanceListItem", 13 },
-    { u"textAppearanceListItemSmall", 13 },
-    { u"targetDescriptions", 13 },
-    { u"directionDescriptions", 13 },
-    { u"overridesImplicitlyEnabledSubtype", 13 },
-    { u"listPreferredItemPaddingLeft", 13 },
-    { u"listPreferredItemPaddingRight", 13 },
-    { u"requiresFadingEdge", 13 },
-    { u"publicKey", 13 },
-    { u"parentActivityName", 16 },
-    { u"isolatedProcess", 16 },
-    { u"importantForAccessibility", 16 },
-    { u"keyboardLayout", 16 },
-    { u"fontFamily", 16 },
-    { u"mediaRouteButtonStyle", 16 },
-    { u"mediaRouteTypes", 16 },
-    { u"supportsRtl", 17 },
-    { u"textDirection", 17 },
-    { u"textAlignment", 17 },
-    { u"layoutDirection", 17 },
-    { u"paddingStart", 17 },
-    { u"paddingEnd", 17 },
-    { u"layout_marginStart", 17 },
-    { u"layout_marginEnd", 17 },
-    { u"layout_toStartOf", 17 },
-    { u"layout_toEndOf", 17 },
-    { u"layout_alignStart", 17 },
-    { u"layout_alignEnd", 17 },
-    { u"layout_alignParentStart", 17 },
-    { u"layout_alignParentEnd", 17 },
-    { u"listPreferredItemPaddingStart", 17 },
-    { u"listPreferredItemPaddingEnd", 17 },
-    { u"singleUser", 17 },
-    { u"presentationTheme", 17 },
-    { u"subtypeId", 17 },
-    { u"initialKeyguardLayout", 17 },
-    { u"widgetCategory", 17 },
-    { u"permissionGroupFlags", 17 },
-    { u"labelFor", 17 },
-    { u"permissionFlags", 17 },
-    { u"checkedTextViewStyle", 17 },
-    { u"showOnLockScreen", 17 },
-    { u"format12Hour", 17 },
-    { u"format24Hour", 17 },
-    { u"timeZone", 17 },
-    { u"mipMap", 18 },
-    { u"mirrorForRtl", 18 },
-    { u"windowOverscan", 18 },
-    { u"requiredForAllUsers", 18 },
-    { u"indicatorStart", 18 },
-    { u"indicatorEnd", 18 },
-    { u"childIndicatorStart", 18 },
-    { u"childIndicatorEnd", 18 },
-    { u"restrictedAccountType", 18 },
-    { u"requiredAccountType", 18 },
-    { u"canRequestTouchExplorationMode", 18 },
-    { u"canRequestEnhancedWebAccessibility", 18 },
-    { u"canRequestFilterKeyEvents", 18 },
-    { u"layoutMode", 18 },
-    { u"keySet", 19 },
-    { u"targetId", 19 },
-    { u"fromScene", 19 },
-    { u"toScene", 19 },
-    { u"transition", 19 },
-    { u"transitionOrdering", 19 },
-    { u"fadingMode", 19 },
-    { u"startDelay", 19 },
-    { u"ssp", 19 },
-    { u"sspPrefix", 19 },
-    { u"sspPattern", 19 },
-    { u"addPrintersActivity", 19 },
-    { u"vendor", 19 },
-    { u"category", 19 },
-    { u"isAsciiCapable", 19 },
-    { u"autoMirrored", 19 },
-    { u"supportsSwitchingToNextInputMethod", 19 },
-    { u"requireDeviceUnlock", 19 },
-    { u"apduServiceBanner", 19 },
-    { u"accessibilityLiveRegion", 19 },
-    { u"windowTranslucentStatus", 19 },
-    { u"windowTranslucentNavigation", 19 },
-    { u"advancedPrintOptionsActivity", 19 },
-    { u"banner", 20 },
-    { u"windowSwipeToDismiss", 20 },
-    { u"isGame", 20 },
-    { u"allowEmbedded", 20 },
-    { u"setupActivity", 20 },
-    { u"fastScrollStyle", 21 },
-    { u"windowContentTransitions", 21 },
-    { u"windowContentTransitionManager", 21 },
-    { u"translationZ", 21 },
-    { u"tintMode", 21 },
-    { u"controlX1", 21 },
-    { u"controlY1", 21 },
-    { u"controlX2", 21 },
-    { u"controlY2", 21 },
-    { u"transitionName", 21 },
-    { u"transitionGroup", 21 },
-    { u"viewportWidth", 21 },
-    { u"viewportHeight", 21 },
-    { u"fillColor", 21 },
-    { u"pathData", 21 },
-    { u"strokeColor", 21 },
-    { u"strokeWidth", 21 },
-    { u"trimPathStart", 21 },
-    { u"trimPathEnd", 21 },
-    { u"trimPathOffset", 21 },
-    { u"strokeLineCap", 21 },
-    { u"strokeLineJoin", 21 },
-    { u"strokeMiterLimit", 21 },
-    { u"colorControlNormal", 21 },
-    { u"colorControlActivated", 21 },
-    { u"colorButtonNormal", 21 },
-    { u"colorControlHighlight", 21 },
-    { u"persistableMode", 21 },
-    { u"titleTextAppearance", 21 },
-    { u"subtitleTextAppearance", 21 },
-    { u"slideEdge", 21 },
-    { u"actionBarTheme", 21 },
-    { u"textAppearanceListItemSecondary", 21 },
-    { u"colorPrimary", 21 },
-    { u"colorPrimaryDark", 21 },
-    { u"colorAccent", 21 },
-    { u"nestedScrollingEnabled", 21 },
-    { u"windowEnterTransition", 21 },
-    { u"windowExitTransition", 21 },
-    { u"windowSharedElementEnterTransition", 21 },
-    { u"windowSharedElementExitTransition", 21 },
-    { u"windowAllowReturnTransitionOverlap", 21 },
-    { u"windowAllowEnterTransitionOverlap", 21 },
-    { u"sessionService", 21 },
-    { u"stackViewStyle", 21 },
-    { u"switchStyle", 21 },
-    { u"elevation", 21 },
-    { u"excludeId", 21 },
-    { u"excludeClass", 21 },
-    { u"hideOnContentScroll", 21 },
-    { u"actionOverflowMenuStyle", 21 },
-    { u"documentLaunchMode", 21 },
-    { u"maxRecents", 21 },
-    { u"autoRemoveFromRecents", 21 },
-    { u"stateListAnimator", 21 },
-    { u"toId", 21 },
-    { u"fromId", 21 },
-    { u"reversible", 21 },
-    { u"splitTrack", 21 },
-    { u"targetName", 21 },
-    { u"excludeName", 21 },
-    { u"matchOrder", 21 },
-    { u"windowDrawsSystemBarBackgrounds", 21 },
-    { u"statusBarColor", 21 },
-    { u"navigationBarColor", 21 },
-    { u"contentInsetStart", 21 },
-    { u"contentInsetEnd", 21 },
-    { u"contentInsetLeft", 21 },
-    { u"contentInsetRight", 21 },
-    { u"paddingMode", 21 },
-    { u"layout_rowWeight", 21 },
-    { u"layout_columnWeight", 21 },
-    { u"translateX", 21 },
-    { u"translateY", 21 },
-    { u"selectableItemBackgroundBorderless", 21 },
-    { u"elegantTextHeight", 21 },
-    { u"searchKeyphraseId", 21 },
-    { u"searchKeyphrase", 21 },
-    { u"searchKeyphraseSupportedLocales", 21 },
-    { u"windowTransitionBackgroundFadeDuration", 21 },
-    { u"overlapAnchor", 21 },
-    { u"progressTint", 21 },
-    { u"progressTintMode", 21 },
-    { u"progressBackgroundTint", 21 },
-    { u"progressBackgroundTintMode", 21 },
-    { u"secondaryProgressTint", 21 },
-    { u"secondaryProgressTintMode", 21 },
-    { u"indeterminateTint", 21 },
-    { u"indeterminateTintMode", 21 },
-    { u"backgroundTint", 21 },
-    { u"backgroundTintMode", 21 },
-    { u"foregroundTint", 21 },
-    { u"foregroundTintMode", 21 },
-    { u"buttonTint", 21 },
-    { u"buttonTintMode", 21 },
-    { u"thumbTint", 21 },
-    { u"thumbTintMode", 21 },
-    { u"fullBackupOnly", 21 },
-    { u"propertyXName", 21 },
-    { u"propertyYName", 21 },
-    { u"relinquishTaskIdentity", 21 },
-    { u"tileModeX", 21 },
-    { u"tileModeY", 21 },
-    { u"actionModeShareDrawable", 21 },
-    { u"actionModeFindDrawable", 21 },
-    { u"actionModeWebSearchDrawable", 21 },
-    { u"transitionVisibilityMode", 21 },
-    { u"minimumHorizontalAngle", 21 },
-    { u"minimumVerticalAngle", 21 },
-    { u"maximumAngle", 21 },
-    { u"searchViewStyle", 21 },
-    { u"closeIcon", 21 },
-    { u"goIcon", 21 },
-    { u"searchIcon", 21 },
-    { u"voiceIcon", 21 },
-    { u"commitIcon", 21 },
-    { u"suggestionRowLayout", 21 },
-    { u"queryBackground", 21 },
-    { u"submitBackground", 21 },
-    { u"buttonBarPositiveButtonStyle", 21 },
-    { u"buttonBarNeutralButtonStyle", 21 },
-    { u"buttonBarNegativeButtonStyle", 21 },
-    { u"popupElevation", 21 },
-    { u"actionBarPopupTheme", 21 },
-    { u"multiArch", 21 },
-    { u"touchscreenBlocksFocus", 21 },
-    { u"windowElevation", 21 },
-    { u"launchTaskBehindTargetAnimation", 21 },
-    { u"launchTaskBehindSourceAnimation", 21 },
-    { u"restrictionType", 21 },
-    { u"dayOfWeekBackground", 21 },
-    { u"dayOfWeekTextAppearance", 21 },
-    { u"headerMonthTextAppearance", 21 },
-    { u"headerDayOfMonthTextAppearance", 21 },
-    { u"headerYearTextAppearance", 21 },
-    { u"yearListItemTextAppearance", 21 },
-    { u"yearListSelectorColor", 21 },
-    { u"calendarTextColor", 21 },
-    { u"recognitionService", 21 },
-    { u"timePickerStyle", 21 },
-    { u"timePickerDialogTheme", 21 },
-    { u"headerTimeTextAppearance", 21 },
-    { u"headerAmPmTextAppearance", 21 },
-    { u"numbersTextColor", 21 },
-    { u"numbersBackgroundColor", 21 },
-    { u"numbersSelectorColor", 21 },
-    { u"amPmTextColor", 21 },
-    { u"amPmBackgroundColor", 21 },
-    { u"searchKeyphraseRecognitionFlags", 21 },
-    { u"checkMarkTint", 21 },
-    { u"checkMarkTintMode", 21 },
-    { u"popupTheme", 21 },
-    { u"toolbarStyle", 21 },
-    { u"windowClipToOutline", 21 },
-    { u"datePickerDialogTheme", 21 },
-    { u"showText", 21 },
-    { u"windowReturnTransition", 21 },
-    { u"windowReenterTransition", 21 },
-    { u"windowSharedElementReturnTransition", 21 },
-    { u"windowSharedElementReenterTransition", 21 },
-    { u"resumeWhilePausing", 21 },
-    { u"datePickerMode", 21 },
-    { u"timePickerMode", 21 },
-    { u"inset", 21 },
-    { u"letterSpacing", 21 },
-    { u"fontFeatureSettings", 21 },
-    { u"outlineProvider", 21 },
-    { u"contentAgeHint", 21 },
-    { u"country", 21 },
-    { u"windowSharedElementsUseOverlay", 21 },
-    { u"reparent", 21 },
-    { u"reparentWithOverlay", 21 },
-    { u"ambientShadowAlpha", 21 },
-    { u"spotShadowAlpha", 21 },
-    { u"navigationIcon", 21 },
-    { u"navigationContentDescription", 21 },
-    { u"fragmentExitTransition", 21 },
-    { u"fragmentEnterTransition", 21 },
-    { u"fragmentSharedElementEnterTransition", 21 },
-    { u"fragmentReturnTransition", 21 },
-    { u"fragmentSharedElementReturnTransition", 21 },
-    { u"fragmentReenterTransition", 21 },
-    { u"fragmentAllowEnterTransitionOverlap", 21 },
-    { u"fragmentAllowReturnTransitionOverlap", 21 },
-    { u"patternPathData", 21 },
-    { u"strokeAlpha", 21 },
-    { u"fillAlpha", 21 },
-    { u"windowActivityTransitions", 21 },
-    { u"colorEdgeEffect", 21 }
+static const std::unordered_map<std::string, size_t> sAttrMap = {
+    { "marqueeRepeatLimit", 2 },
+    { "windowNoDisplay", 3 },
+    { "backgroundDimEnabled", 3 },
+    { "inputType", 3 },
+    { "isDefault", 3 },
+    { "windowDisablePreview", 3 },
+    { "privateImeOptions", 3 },
+    { "editorExtras", 3 },
+    { "settingsActivity", 3 },
+    { "fastScrollEnabled", 3 },
+    { "reqTouchScreen", 3 },
+    { "reqKeyboardType", 3 },
+    { "reqHardKeyboard", 3 },
+    { "reqNavigation", 3 },
+    { "windowSoftInputMode", 3 },
+    { "imeFullscreenBackground", 3 },
+    { "noHistory", 3 },
+    { "headerDividersEnabled", 3 },
+    { "footerDividersEnabled", 3 },
+    { "candidatesTextStyleSpans", 3 },
+    { "smoothScrollbar", 3 },
+    { "reqFiveWayNav", 3 },
+    { "keyBackground", 3 },
+    { "keyTextSize", 3 },
+    { "labelTextSize", 3 },
+    { "keyTextColor", 3 },
+    { "keyPreviewLayout", 3 },
+    { "keyPreviewOffset", 3 },
+    { "keyPreviewHeight", 3 },
+    { "verticalCorrection", 3 },
+    { "popupLayout", 3 },
+    { "state_long_pressable", 3 },
+    { "keyWidth", 3 },
+    { "keyHeight", 3 },
+    { "horizontalGap", 3 },
+    { "verticalGap", 3 },
+    { "rowEdgeFlags", 3 },
+    { "codes", 3 },
+    { "popupKeyboard", 3 },
+    { "popupCharacters", 3 },
+    { "keyEdgeFlags", 3 },
+    { "isModifier", 3 },
+    { "isSticky", 3 },
+    { "isRepeatable", 3 },
+    { "iconPreview", 3 },
+    { "keyOutputText", 3 },
+    { "keyLabel", 3 },
+    { "keyIcon", 3 },
+    { "keyboardMode", 3 },
+    { "isScrollContainer", 3 },
+    { "fillEnabled", 3 },
+    { "updatePeriodMillis", 3 },
+    { "initialLayout", 3 },
+    { "voiceSearchMode", 3 },
+    { "voiceLanguageModel", 3 },
+    { "voicePromptText", 3 },
+    { "voiceLanguage", 3 },
+    { "voiceMaxResults", 3 },
+    { "bottomOffset", 3 },
+    { "topOffset", 3 },
+    { "allowSingleTap", 3 },
+    { "handle", 3 },
+    { "content", 3 },
+    { "animateOnClick", 3 },
+    { "configure", 3 },
+    { "hapticFeedbackEnabled", 3 },
+    { "innerRadius", 3 },
+    { "thickness", 3 },
+    { "sharedUserLabel", 3 },
+    { "dropDownWidth", 3 },
+    { "dropDownAnchor", 3 },
+    { "imeOptions", 3 },
+    { "imeActionLabel", 3 },
+    { "imeActionId", 3 },
+    { "imeExtractEnterAnimation", 3 },
+    { "imeExtractExitAnimation", 3 },
+    { "tension", 4 },
+    { "extraTension", 4 },
+    { "anyDensity", 4 },
+    { "searchSuggestThreshold", 4 },
+    { "includeInGlobalSearch", 4 },
+    { "onClick", 4 },
+    { "targetSdkVersion", 4 },
+    { "maxSdkVersion", 4 },
+    { "testOnly", 4 },
+    { "contentDescription", 4 },
+    { "gestureStrokeWidth", 4 },
+    { "gestureColor", 4 },
+    { "uncertainGestureColor", 4 },
+    { "fadeOffset", 4 },
+    { "fadeDuration", 4 },
+    { "gestureStrokeType", 4 },
+    { "gestureStrokeLengthThreshold", 4 },
+    { "gestureStrokeSquarenessThreshold", 4 },
+    { "gestureStrokeAngleThreshold", 4 },
+    { "eventsInterceptionEnabled", 4 },
+    { "fadeEnabled", 4 },
+    { "backupAgent", 4 },
+    { "allowBackup", 4 },
+    { "glEsVersion", 4 },
+    { "queryAfterZeroResults", 4 },
+    { "dropDownHeight", 4 },
+    { "smallScreens", 4 },
+    { "normalScreens", 4 },
+    { "largeScreens", 4 },
+    { "progressBarStyleInverse", 4 },
+    { "progressBarStyleSmallInverse", 4 },
+    { "progressBarStyleLargeInverse", 4 },
+    { "searchSettingsDescription", 4 },
+    { "textColorPrimaryInverseDisableOnly", 4 },
+    { "autoUrlDetect", 4 },
+    { "resizeable", 4 },
+    { "required", 5 },
+    { "accountType", 5 },
+    { "contentAuthority", 5 },
+    { "userVisible", 5 },
+    { "windowShowWallpaper", 5 },
+    { "wallpaperOpenEnterAnimation", 5 },
+    { "wallpaperOpenExitAnimation", 5 },
+    { "wallpaperCloseEnterAnimation", 5 },
+    { "wallpaperCloseExitAnimation", 5 },
+    { "wallpaperIntraOpenEnterAnimation", 5 },
+    { "wallpaperIntraOpenExitAnimation", 5 },
+    { "wallpaperIntraCloseEnterAnimation", 5 },
+    { "wallpaperIntraCloseExitAnimation", 5 },
+    { "supportsUploading", 5 },
+    { "killAfterRestore", 5 },
+    { "restoreNeedsApplication", 5 },
+    { "smallIcon", 5 },
+    { "accountPreferences", 5 },
+    { "textAppearanceSearchResultSubtitle", 5 },
+    { "textAppearanceSearchResultTitle", 5 },
+    { "summaryColumn", 5 },
+    { "detailColumn", 5 },
+    { "detailSocialSummary", 5 },
+    { "thumbnail", 5 },
+    { "detachWallpaper", 5 },
+    { "finishOnCloseSystemDialogs", 5 },
+    { "scrollbarFadeDuration", 5 },
+    { "scrollbarDefaultDelayBeforeFade", 5 },
+    { "fadeScrollbars", 5 },
+    { "colorBackgroundCacheHint", 5 },
+    { "dropDownHorizontalOffset", 5 },
+    { "dropDownVerticalOffset", 5 },
+    { "quickContactBadgeStyleWindowSmall", 6 },
+    { "quickContactBadgeStyleWindowMedium", 6 },
+    { "quickContactBadgeStyleWindowLarge", 6 },
+    { "quickContactBadgeStyleSmallWindowSmall", 6 },
+    { "quickContactBadgeStyleSmallWindowMedium", 6 },
+    { "quickContactBadgeStyleSmallWindowLarge", 6 },
+    { "author", 7 },
+    { "autoStart", 7 },
+    { "expandableListViewWhiteStyle", 8 },
+    { "installLocation", 8 },
+    { "vmSafeMode", 8 },
+    { "webTextViewStyle", 8 },
+    { "restoreAnyVersion", 8 },
+    { "tabStripLeft", 8 },
+    { "tabStripRight", 8 },
+    { "tabStripEnabled", 8 },
+    { "logo", 9 },
+    { "xlargeScreens", 9 },
+    { "immersive", 9 },
+    { "overScrollMode", 9 },
+    { "overScrollHeader", 9 },
+    { "overScrollFooter", 9 },
+    { "filterTouchesWhenObscured", 9 },
+    { "textSelectHandleLeft", 9 },
+    { "textSelectHandleRight", 9 },
+    { "textSelectHandle", 9 },
+    { "textSelectHandleWindowStyle", 9 },
+    { "popupAnimationStyle", 9 },
+    { "screenSize", 9 },
+    { "screenDensity", 9 },
+    { "allContactsName", 11 },
+    { "windowActionBar", 11 },
+    { "actionBarStyle", 11 },
+    { "navigationMode", 11 },
+    { "displayOptions", 11 },
+    { "subtitle", 11 },
+    { "customNavigationLayout", 11 },
+    { "hardwareAccelerated", 11 },
+    { "measureWithLargestChild", 11 },
+    { "animateFirstView", 11 },
+    { "dropDownSpinnerStyle", 11 },
+    { "actionDropDownStyle", 11 },
+    { "actionButtonStyle", 11 },
+    { "showAsAction", 11 },
+    { "previewImage", 11 },
+    { "actionModeBackground", 11 },
+    { "actionModeCloseDrawable", 11 },
+    { "windowActionModeOverlay", 11 },
+    { "valueFrom", 11 },
+    { "valueTo", 11 },
+    { "valueType", 11 },
+    { "propertyName", 11 },
+    { "ordering", 11 },
+    { "fragment", 11 },
+    { "windowActionBarOverlay", 11 },
+    { "fragmentOpenEnterAnimation", 11 },
+    { "fragmentOpenExitAnimation", 11 },
+    { "fragmentCloseEnterAnimation", 11 },
+    { "fragmentCloseExitAnimation", 11 },
+    { "fragmentFadeEnterAnimation", 11 },
+    { "fragmentFadeExitAnimation", 11 },
+    { "actionBarSize", 11 },
+    { "imeSubtypeLocale", 11 },
+    { "imeSubtypeMode", 11 },
+    { "imeSubtypeExtraValue", 11 },
+    { "splitMotionEvents", 11 },
+    { "listChoiceBackgroundIndicator", 11 },
+    { "spinnerMode", 11 },
+    { "animateLayoutChanges", 11 },
+    { "actionBarTabStyle", 11 },
+    { "actionBarTabBarStyle", 11 },
+    { "actionBarTabTextStyle", 11 },
+    { "actionOverflowButtonStyle", 11 },
+    { "actionModeCloseButtonStyle", 11 },
+    { "titleTextStyle", 11 },
+    { "subtitleTextStyle", 11 },
+    { "iconifiedByDefault", 11 },
+    { "actionLayout", 11 },
+    { "actionViewClass", 11 },
+    { "activatedBackgroundIndicator", 11 },
+    { "state_activated", 11 },
+    { "listPopupWindowStyle", 11 },
+    { "popupMenuStyle", 11 },
+    { "textAppearanceLargePopupMen", 11 },
+    { "textAppearanceSmallPopupMen", 11 },
+    { "breadCrumbTitle", 11 },
+    { "breadCrumbShortTitle", 11 },
+    { "listDividerAlertDialog", 11 },
+    { "textColorAlertDialogListItem", 11 },
+    { "loopViews", 11 },
+    { "dialogTheme", 11 },
+    { "alertDialogTheme", 11 },
+    { "dividerVertical", 11 },
+    { "homeAsUpIndicator", 11 },
+    { "enterFadeDuration", 11 },
+    { "exitFadeDuration", 11 },
+    { "selectableItemBackground", 11 },
+    { "autoAdvanceViewId", 11 },
+    { "useIntrinsicSizeAsMinimum", 11 },
+    { "actionModeCutDrawable", 11 },
+    { "actionModeCopyDrawable", 11 },
+    { "actionModePasteDrawable", 11 },
+    { "textEditPasteWindowLayout", 11 },
+    { "textEditNoPasteWindowLayout", 11 },
+    { "textIsSelectable", 11 },
+    { "windowEnableSplitTouch", 11 },
+    { "indeterminateProgressStyle", 11 },
+    { "progressBarPadding", 11 },
+    { "animationResolution", 11 },
+    { "state_accelerated", 11 },
+    { "baseline", 11 },
+    { "homeLayout", 11 },
+    { "opacity", 11 },
+    { "alpha", 11 },
+    { "transformPivotX", 11 },
+    { "transformPivotY", 11 },
+    { "translationX", 11 },
+    { "translationY", 11 },
+    { "scaleX", 11 },
+    { "scaleY", 11 },
+    { "rotation", 11 },
+    { "rotationX", 11 },
+    { "rotationY", 11 },
+    { "showDividers", 11 },
+    { "dividerPadding", 11 },
+    { "borderlessButtonStyle", 11 },
+    { "dividerHorizontal", 11 },
+    { "itemPadding", 11 },
+    { "buttonBarStyle", 11 },
+    { "buttonBarButtonStyle", 11 },
+    { "segmentedButtonStyle", 11 },
+    { "staticWallpaperPreview", 11 },
+    { "allowParallelSyncs", 11 },
+    { "isAlwaysSyncable", 11 },
+    { "verticalScrollbarPosition", 11 },
+    { "fastScrollAlwaysVisible", 11 },
+    { "fastScrollThumbDrawable", 11 },
+    { "fastScrollPreviewBackgroundLeft", 11 },
+    { "fastScrollPreviewBackgroundRight", 11 },
+    { "fastScrollTrackDrawable", 11 },
+    { "fastScrollOverlayPosition", 11 },
+    { "customTokens", 11 },
+    { "nextFocusForward", 11 },
+    { "firstDayOfWeek", 11 },
+    { "showWeekNumber", 11 },
+    { "minDate", 11 },
+    { "maxDate", 11 },
+    { "shownWeekCount", 11 },
+    { "selectedWeekBackgroundColor", 11 },
+    { "focusedMonthDateColor", 11 },
+    { "unfocusedMonthDateColor", 11 },
+    { "weekNumberColor", 11 },
+    { "weekSeparatorLineColor", 11 },
+    { "selectedDateVerticalBar", 11 },
+    { "weekDayTextAppearance", 11 },
+    { "dateTextAppearance", 11 },
+    { "solidColor", 11 },
+    { "spinnersShown", 11 },
+    { "calendarViewShown", 11 },
+    { "state_multiline", 11 },
+    { "detailsElementBackground", 11 },
+    { "textColorHighlightInverse", 11 },
+    { "textColorLinkInverse", 11 },
+    { "editTextColor", 11 },
+    { "editTextBackground", 11 },
+    { "horizontalScrollViewStyle", 11 },
+    { "layerType", 11 },
+    { "alertDialogIcon", 11 },
+    { "windowMinWidthMajor", 11 },
+    { "windowMinWidthMinor", 11 },
+    { "queryHint", 11 },
+    { "fastScrollTextColor", 11 },
+    { "largeHeap", 11 },
+    { "windowCloseOnTouchOutside", 11 },
+    { "datePickerStyle", 11 },
+    { "calendarViewStyle", 11 },
+    { "textEditSidePasteWindowLayout", 11 },
+    { "textEditSideNoPasteWindowLayout", 11 },
+    { "actionMenuTextAppearance", 11 },
+    { "actionMenuTextColor", 11 },
+    { "textCursorDrawable", 12 },
+    { "resizeMode", 12 },
+    { "requiresSmallestWidthDp", 12 },
+    { "compatibleWidthLimitDp", 12 },
+    { "largestWidthLimitDp", 12 },
+    { "state_hovered", 13 },
+    { "state_drag_can_accept", 13 },
+    { "state_drag_hovered", 13 },
+    { "stopWithTask", 13 },
+    { "switchTextOn", 13 },
+    { "switchTextOff", 13 },
+    { "switchPreferenceStyle", 13 },
+    { "switchTextAppearance", 13 },
+    { "track", 13 },
+    { "switchMinWidth", 13 },
+    { "switchPadding", 13 },
+    { "thumbTextPadding", 13 },
+    { "textSuggestionsWindowStyle", 13 },
+    { "textEditSuggestionItemLayout", 13 },
+    { "rowCount", 13 },
+    { "rowOrderPreserved", 13 },
+    { "columnCount", 13 },
+    { "columnOrderPreserved", 13 },
+    { "useDefaultMargins", 13 },
+    { "alignmentMode", 13 },
+    { "layout_row", 13 },
+    { "layout_rowSpan", 13 },
+    { "layout_columnSpan", 13 },
+    { "actionModeSelectAllDrawable", 13 },
+    { "isAuxiliary", 13 },
+    { "accessibilityEventTypes", 13 },
+    { "packageNames", 13 },
+    { "accessibilityFeedbackType", 13 },
+    { "notificationTimeout", 13 },
+    { "accessibilityFlags", 13 },
+    { "canRetrieveWindowContent", 13 },
+    { "listPreferredItemHeightLarge", 13 },
+    { "listPreferredItemHeightSmall", 13 },
+    { "actionBarSplitStyle", 13 },
+    { "actionProviderClass", 13 },
+    { "backgroundStacked", 13 },
+    { "backgroundSplit", 13 },
+    { "textAllCaps", 13 },
+    { "colorPressedHighlight", 13 },
+    { "colorLongPressedHighlight", 13 },
+    { "colorFocusedHighlight", 13 },
+    { "colorActivatedHighlight", 13 },
+    { "colorMultiSelectHighlight", 13 },
+    { "drawableStart", 13 },
+    { "drawableEnd", 13 },
+    { "actionModeStyle", 13 },
+    { "minResizeWidth", 13 },
+    { "minResizeHeight", 13 },
+    { "actionBarWidgetTheme", 13 },
+    { "uiOptions", 13 },
+    { "subtypeLocale", 13 },
+    { "subtypeExtraValue", 13 },
+    { "actionBarDivider", 13 },
+    { "actionBarItemBackground", 13 },
+    { "actionModeSplitBackground", 13 },
+    { "textAppearanceListItem", 13 },
+    { "textAppearanceListItemSmall", 13 },
+    { "targetDescriptions", 13 },
+    { "directionDescriptions", 13 },
+    { "overridesImplicitlyEnabledSubtype", 13 },
+    { "listPreferredItemPaddingLeft", 13 },
+    { "listPreferredItemPaddingRight", 13 },
+    { "requiresFadingEdge", 13 },
+    { "publicKey", 13 },
+    { "parentActivityName", 16 },
+    { "isolatedProcess", 16 },
+    { "importantForAccessibility", 16 },
+    { "keyboardLayout", 16 },
+    { "fontFamily", 16 },
+    { "mediaRouteButtonStyle", 16 },
+    { "mediaRouteTypes", 16 },
+    { "supportsRtl", 17 },
+    { "textDirection", 17 },
+    { "textAlignment", 17 },
+    { "layoutDirection", 17 },
+    { "paddingStart", 17 },
+    { "paddingEnd", 17 },
+    { "layout_marginStart", 17 },
+    { "layout_marginEnd", 17 },
+    { "layout_toStartOf", 17 },
+    { "layout_toEndOf", 17 },
+    { "layout_alignStart", 17 },
+    { "layout_alignEnd", 17 },
+    { "layout_alignParentStart", 17 },
+    { "layout_alignParentEnd", 17 },
+    { "listPreferredItemPaddingStart", 17 },
+    { "listPreferredItemPaddingEnd", 17 },
+    { "singleUser", 17 },
+    { "presentationTheme", 17 },
+    { "subtypeId", 17 },
+    { "initialKeyguardLayout", 17 },
+    { "widgetCategory", 17 },
+    { "permissionGroupFlags", 17 },
+    { "labelFor", 17 },
+    { "permissionFlags", 17 },
+    { "checkedTextViewStyle", 17 },
+    { "showOnLockScreen", 17 },
+    { "format12Hour", 17 },
+    { "format24Hour", 17 },
+    { "timeZone", 17 },
+    { "mipMap", 18 },
+    { "mirrorForRtl", 18 },
+    { "windowOverscan", 18 },
+    { "requiredForAllUsers", 18 },
+    { "indicatorStart", 18 },
+    { "indicatorEnd", 18 },
+    { "childIndicatorStart", 18 },
+    { "childIndicatorEnd", 18 },
+    { "restrictedAccountType", 18 },
+    { "requiredAccountType", 18 },
+    { "canRequestTouchExplorationMode", 18 },
+    { "canRequestEnhancedWebAccessibility", 18 },
+    { "canRequestFilterKeyEvents", 18 },
+    { "layoutMode", 18 },
+    { "keySet", 19 },
+    { "targetId", 19 },
+    { "fromScene", 19 },
+    { "toScene", 19 },
+    { "transition", 19 },
+    { "transitionOrdering", 19 },
+    { "fadingMode", 19 },
+    { "startDelay", 19 },
+    { "ssp", 19 },
+    { "sspPrefix", 19 },
+    { "sspPattern", 19 },
+    { "addPrintersActivity", 19 },
+    { "vendor", 19 },
+    { "category", 19 },
+    { "isAsciiCapable", 19 },
+    { "autoMirrored", 19 },
+    { "supportsSwitchingToNextInputMethod", 19 },
+    { "requireDeviceUnlock", 19 },
+    { "apduServiceBanner", 19 },
+    { "accessibilityLiveRegion", 19 },
+    { "windowTranslucentStatus", 19 },
+    { "windowTranslucentNavigation", 19 },
+    { "advancedPrintOptionsActivity", 19 },
+    { "banner", 20 },
+    { "windowSwipeToDismiss", 20 },
+    { "isGame", 20 },
+    { "allowEmbedded", 20 },
+    { "setupActivity", 20 },
+    { "fastScrollStyle", 21 },
+    { "windowContentTransitions", 21 },
+    { "windowContentTransitionManager", 21 },
+    { "translationZ", 21 },
+    { "tintMode", 21 },
+    { "controlX1", 21 },
+    { "controlY1", 21 },
+    { "controlX2", 21 },
+    { "controlY2", 21 },
+    { "transitionName", 21 },
+    { "transitionGroup", 21 },
+    { "viewportWidth", 21 },
+    { "viewportHeight", 21 },
+    { "fillColor", 21 },
+    { "pathData", 21 },
+    { "strokeColor", 21 },
+    { "strokeWidth", 21 },
+    { "trimPathStart", 21 },
+    { "trimPathEnd", 21 },
+    { "trimPathOffset", 21 },
+    { "strokeLineCap", 21 },
+    { "strokeLineJoin", 21 },
+    { "strokeMiterLimit", 21 },
+    { "colorControlNormal", 21 },
+    { "colorControlActivated", 21 },
+    { "colorButtonNormal", 21 },
+    { "colorControlHighlight", 21 },
+    { "persistableMode", 21 },
+    { "titleTextAppearance", 21 },
+    { "subtitleTextAppearance", 21 },
+    { "slideEdge", 21 },
+    { "actionBarTheme", 21 },
+    { "textAppearanceListItemSecondary", 21 },
+    { "colorPrimary", 21 },
+    { "colorPrimaryDark", 21 },
+    { "colorAccent", 21 },
+    { "nestedScrollingEnabled", 21 },
+    { "windowEnterTransition", 21 },
+    { "windowExitTransition", 21 },
+    { "windowSharedElementEnterTransition", 21 },
+    { "windowSharedElementExitTransition", 21 },
+    { "windowAllowReturnTransitionOverlap", 21 },
+    { "windowAllowEnterTransitionOverlap", 21 },
+    { "sessionService", 21 },
+    { "stackViewStyle", 21 },
+    { "switchStyle", 21 },
+    { "elevation", 21 },
+    { "excludeId", 21 },
+    { "excludeClass", 21 },
+    { "hideOnContentScroll", 21 },
+    { "actionOverflowMenuStyle", 21 },
+    { "documentLaunchMode", 21 },
+    { "maxRecents", 21 },
+    { "autoRemoveFromRecents", 21 },
+    { "stateListAnimator", 21 },
+    { "toId", 21 },
+    { "fromId", 21 },
+    { "reversible", 21 },
+    { "splitTrack", 21 },
+    { "targetName", 21 },
+    { "excludeName", 21 },
+    { "matchOrder", 21 },
+    { "windowDrawsSystemBarBackgrounds", 21 },
+    { "statusBarColor", 21 },
+    { "navigationBarColor", 21 },
+    { "contentInsetStart", 21 },
+    { "contentInsetEnd", 21 },
+    { "contentInsetLeft", 21 },
+    { "contentInsetRight", 21 },
+    { "paddingMode", 21 },
+    { "layout_rowWeight", 21 },
+    { "layout_columnWeight", 21 },
+    { "translateX", 21 },
+    { "translateY", 21 },
+    { "selectableItemBackgroundBorderless", 21 },
+    { "elegantTextHeight", 21 },
+    { "searchKeyphraseId", 21 },
+    { "searchKeyphrase", 21 },
+    { "searchKeyphraseSupportedLocales", 21 },
+    { "windowTransitionBackgroundFadeDuration", 21 },
+    { "overlapAnchor", 21 },
+    { "progressTint", 21 },
+    { "progressTintMode", 21 },
+    { "progressBackgroundTint", 21 },
+    { "progressBackgroundTintMode", 21 },
+    { "secondaryProgressTint", 21 },
+    { "secondaryProgressTintMode", 21 },
+    { "indeterminateTint", 21 },
+    { "indeterminateTintMode", 21 },
+    { "backgroundTint", 21 },
+    { "backgroundTintMode", 21 },
+    { "foregroundTint", 21 },
+    { "foregroundTintMode", 21 },
+    { "buttonTint", 21 },
+    { "buttonTintMode", 21 },
+    { "thumbTint", 21 },
+    { "thumbTintMode", 21 },
+    { "fullBackupOnly", 21 },
+    { "propertyXName", 21 },
+    { "propertyYName", 21 },
+    { "relinquishTaskIdentity", 21 },
+    { "tileModeX", 21 },
+    { "tileModeY", 21 },
+    { "actionModeShareDrawable", 21 },
+    { "actionModeFindDrawable", 21 },
+    { "actionModeWebSearchDrawable", 21 },
+    { "transitionVisibilityMode", 21 },
+    { "minimumHorizontalAngle", 21 },
+    { "minimumVerticalAngle", 21 },
+    { "maximumAngle", 21 },
+    { "searchViewStyle", 21 },
+    { "closeIcon", 21 },
+    { "goIcon", 21 },
+    { "searchIcon", 21 },
+    { "voiceIcon", 21 },
+    { "commitIcon", 21 },
+    { "suggestionRowLayout", 21 },
+    { "queryBackground", 21 },
+    { "submitBackground", 21 },
+    { "buttonBarPositiveButtonStyle", 21 },
+    { "buttonBarNeutralButtonStyle", 21 },
+    { "buttonBarNegativeButtonStyle", 21 },
+    { "popupElevation", 21 },
+    { "actionBarPopupTheme", 21 },
+    { "multiArch", 21 },
+    { "touchscreenBlocksFocus", 21 },
+    { "windowElevation", 21 },
+    { "launchTaskBehindTargetAnimation", 21 },
+    { "launchTaskBehindSourceAnimation", 21 },
+    { "restrictionType", 21 },
+    { "dayOfWeekBackground", 21 },
+    { "dayOfWeekTextAppearance", 21 },
+    { "headerMonthTextAppearance", 21 },
+    { "headerDayOfMonthTextAppearance", 21 },
+    { "headerYearTextAppearance", 21 },
+    { "yearListItemTextAppearance", 21 },
+    { "yearListSelectorColor", 21 },
+    { "calendarTextColor", 21 },
+    { "recognitionService", 21 },
+    { "timePickerStyle", 21 },
+    { "timePickerDialogTheme", 21 },
+    { "headerTimeTextAppearance", 21 },
+    { "headerAmPmTextAppearance", 21 },
+    { "numbersTextColor", 21 },
+    { "numbersBackgroundColor", 21 },
+    { "numbersSelectorColor", 21 },
+    { "amPmTextColor", 21 },
+    { "amPmBackgroundColor", 21 },
+    { "searchKeyphraseRecognitionFlags", 21 },
+    { "checkMarkTint", 21 },
+    { "checkMarkTintMode", 21 },
+    { "popupTheme", 21 },
+    { "toolbarStyle", 21 },
+    { "windowClipToOutline", 21 },
+    { "datePickerDialogTheme", 21 },
+    { "showText", 21 },
+    { "windowReturnTransition", 21 },
+    { "windowReenterTransition", 21 },
+    { "windowSharedElementReturnTransition", 21 },
+    { "windowSharedElementReenterTransition", 21 },
+    { "resumeWhilePausing", 21 },
+    { "datePickerMode", 21 },
+    { "timePickerMode", 21 },
+    { "inset", 21 },
+    { "letterSpacing", 21 },
+    { "fontFeatureSettings", 21 },
+    { "outlineProvider", 21 },
+    { "contentAgeHint", 21 },
+    { "country", 21 },
+    { "windowSharedElementsUseOverlay", 21 },
+    { "reparent", 21 },
+    { "reparentWithOverlay", 21 },
+    { "ambientShadowAlpha", 21 },
+    { "spotShadowAlpha", 21 },
+    { "navigationIcon", 21 },
+    { "navigationContentDescription", 21 },
+    { "fragmentExitTransition", 21 },
+    { "fragmentEnterTransition", 21 },
+    { "fragmentSharedElementEnterTransition", 21 },
+    { "fragmentReturnTransition", 21 },
+    { "fragmentSharedElementReturnTransition", 21 },
+    { "fragmentReenterTransition", 21 },
+    { "fragmentAllowEnterTransitionOverlap", 21 },
+    { "fragmentAllowReturnTransitionOverlap", 21 },
+    { "patternPathData", 21 },
+    { "strokeAlpha", 21 },
+    { "fillAlpha", 21 },
+    { "windowActivityTransitions", 21 },
+    { "colorEdgeEffect", 21 }
 };
 
 size_t findAttributeSdkLevel(const ResourceName& name) {
-    if (name.package != u"android" && name.type != ResourceType::kAttr) {
+    if (name.package != "android" && name.type != ResourceType::kAttr) {
         return 0;
     }
 
@@ -738,8 +738,8 @@
     return SDK_LOLLIPOP_MR1;
 }
 
-std::pair<StringPiece16, int> getDevelopmentSdkCodeNameAndVersion() {
-    return std::make_pair(StringPiece16(sDevelopmentSdkCodeName), sDevelopmentSdkLevel);
+std::pair<StringPiece, int> getDevelopmentSdkCodeNameAndVersion() {
+    return std::make_pair(StringPiece(sDevelopmentSdkCodeName), sDevelopmentSdkLevel);
 }
 
 } // namespace aapt