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.



449
450
451
452
453
# File 'lib/android/resource.rb', line 449

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

Instance Attribute Details

#packagesObject (readonly)

Returns the value of attribute packages.



447
448
449
# File 'lib/android/resource.rb', line 447

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



478
479
480
# File 'lib/android/resource.rb', line 478

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

#first_pkgObject



497
498
499
# File 'lib/android/resource.rb', line 497

def first_pkg
  @packages.first[1]
end

#package_countFixnum

Returns number of packages.

Returns:

  • (Fixnum)

    number of packages



462
463
464
# File 'lib/android/resource.rb', line 462

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



493
494
495
# File 'lib/android/resource.rb', line 493

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



485
486
487
# File 'lib/android/resource.rb', line 485

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.



457
458
459
# File 'lib/android/resource.rb', line 457

def strings
  @string_pool.strings
end