Class: Android::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/android/resource.rb

Overview

based on Android OS source code /frameworks/base/include/utils/ResourceTypes.h

Defined Under Namespace

Classes: Chunk, ChunkHeader, ResStringPool, ResTableConfig, ResTableEntry, ResTableHeader, ResTableMap, ResTableMapEntry, ResTablePackage, ResTableType, ResTableTypeSpec, ResValue

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Resource

Returns a new instance of Resource.



551
552
553
554
555
# File 'lib/android/resource.rb', line 551

def initialize(data)
  data.force_encoding(Encoding::ASCII_8BIT)
  @data = data
  parse()
end

Instance Attribute Details

#packagesObject (readonly)

Returns the value of attribute packages.



549
550
551
# File 'lib/android/resource.rb', line 549

def packages
  @packages
end

Instance Method Details

#find(rsc_id, opt = {}) ⇒ Object

Note:

This method only support string resource for now.

Note:

Always return nil if assign not string type res id.

This method only support string resource for now. find resource by resource id

Parameters:

  • res_id (String)

    (like ‘@0x7f010001’ or ‘@string/key’)

  • opts (Hash)

    option

Raises:

  • (ArgumentError)

    invalid id format

Since:

  • 0.5.0



580
581
582
# File 'lib/android/resource.rb', line 580

def find(rsc_id, opt={})
  first_pkg.find(rsc_id, opt)
end

#first_pkgObject



599
600
601
# File 'lib/android/resource.rb', line 599

def first_pkg
  @packages.first[1]
end

#package_countFixnum

Returns number of packages.

Returns:

  • (Fixnum)

    number of packages



564
565
566
# File 'lib/android/resource.rb', line 564

def package_count
  @res_table.package_count
end

#res_hex_id(readable_id) ⇒ String

convert readable resource id to hex id

Parameters:

  • readable_id (String)

    readable resource id (‘@string/key’)

Returns:

  • (String)

    hexoctet format resource id(‘@0x7f010001’)

Since:

  • 0.5.0



595
596
597
# File 'lib/android/resource.rb', line 595

def res_hex_id(readable_id)
  first_pkg.res_hex_id(readable_id)
end

#res_readable_id(hex_id) ⇒ String

Returns readable resource id (‘@string/key’).

Parameters:

  • hex_id (String)

    hexoctet format resource id(‘@0x7f010001’)

Returns:

  • (String)

    readable resource id (‘@string/key’)

Since:

  • 0.5.0



587
588
589
# File 'lib/android/resource.rb', line 587

def res_readable_id(hex_id)
  first_pkg.res_readable_id(hex_id)
end

#stringsArray<String>

Returns all strings defined in arsc.

Returns:

  • (Array<String>)

    all strings defined in arsc.



559
560
561
# File 'lib/android/resource.rb', line 559

def strings
  @string_pool.strings
end