Class: Android::AXMLParser
- Inherits:
-
Object
- Object
- Android::AXMLParser
- Defined in:
- lib/android/axml_parser.rb
Overview
Note:
refer to Android OS framework code:
/frameworks/base/include/androidfw/ResourceTypes.h,
/frameworks/base/libs/androidfw/ResourceTypes.cpp
binary AXML parser
Defined Under Namespace
Classes: ReadError
Constant Summary collapse
- TAG_START_DOC =
0x00100100- TAG_END_DOC =
0x00100101- TAG_START =
0x00100102- TAG_END =
0x00100103- TAG_TEXT =
0x00100104- TAG_CDSECT =
0x00100105- TAG_ENTITY_REF =
0x00100106- VAL_TYPE_NULL =
0- VAL_TYPE_REFERENCE =
1- VAL_TYPE_ATTRIBUTE =
2- VAL_TYPE_STRING =
3- VAL_TYPE_FLOAT =
4- VAL_TYPE_DIMENSION =
5- VAL_TYPE_FRACTION =
6- VAL_TYPE_INT_DEC =
16- VAL_TYPE_INT_HEX =
17- VAL_TYPE_INT_BOOLEAN =
18- VAL_TYPE_INT_COLOR_ARGB8 =
28- VAL_TYPE_INT_COLOR_RGB8 =
29- VAL_TYPE_INT_COLOR_ARGB4 =
30- VAL_TYPE_INT_COLOR_RGB4 =
31
Instance Attribute Summary collapse
-
#strings ⇒ Array<String>
readonly
Strings defined in axml.
Instance Method Summary collapse
-
#initialize(axml) ⇒ AXMLParser
constructor
A new instance of AXMLParser.
-
#parse ⇒ REXML::Document
parse binary xml.
Constructor Details
#initialize(axml) ⇒ AXMLParser
Returns a new instance of AXMLParser.
45 46 47 48 |
# File 'lib/android/axml_parser.rb', line 45 def initialize(axml) @io = StringIO.new(axml, "rb") @strings = [] end |
Instance Attribute Details
#strings ⇒ Array<String> (readonly)
Returns strings defined in axml.
42 43 44 |
# File 'lib/android/axml_parser.rb', line 42 def strings @strings end |
Instance Method Details
#parse ⇒ REXML::Document
parse binary xml
52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/android/axml_parser.rb', line 52 def parse @doc = REXML::Document.new @doc << REXML::XMLDecl.new @num_str = word(4*4) @xml_offset = word(3*4) @parents = [@doc] @ns = [] parse_strings @doc end |