�A�v�����s���̉\�����g����ClassLoader�̎g�������T���v���ƂƂ��ɉ���BJAR��DEX�ɕϊ�������@��4�̒��ӓ_���B
�@Java�ł́A�N�����݂̂łȂ��A���s���Ƀ��[�U�[�v���O�����̐���ɂ���āA�O�����\�[�X����N���X��ǂݍ��݁A���\�b�h�����s�ł��܂��B�����ł��AClassLoader���g�p���ĊO������N���X��ǂݍ��߂悢�̂ł��B
�@���I�N���X���[�f�B���O���s���邱�ƂŁA�ǂ̂悤�ȃ����b�g������ł��傤���B
�@Android�ł́A���I�N���X���[�f�B���O��Java�̂���Ƃ͏�������قȂ�܂��B����́A���̎����Ή����@���ڂ���������Ă����܂��B
�@�ǂݏI�����i�K�ŁA�قږ��������`�œ��I�N���X���[�f�B���O���s����Ɨ������Ă��炤���Ƃ��ł���ł��傤�B
�@����̃T���v���͈ȉ����_�E�����[�h���Ă��������B
�@�uHello.zip�v�͓��I�Ƀ��[�h����JAR�t�@�C�����܂܂�Ă��܂��B����̃T���v���́A�u/sdcard�v�����ɂ����̃t�@�C�������݂���O��Ȃ̂ŁAHello.zip��W�J�����t�H���_�ŁA�G�~�����[�^�������͎��@��USB�ڑ�������Ԃňȉ��̃R�}���h���������Ă��������B
adb push Hello_dex.jar /sdcard/Hello_dex.jar adb push Hello.jar /sdcard/Hello.jar
�@Hello.jar�͒ʏ��Java��JAR�t�@�C���AHello_dex.jar��DEX�`����JAR�t�@�C���ł��B
�@����̃T���v���̉�ʃC���[�W�ł��B
�@�ォ��5�̃{�^���́A���ꂼ��قȂ���@�œ��I�N���X���[�f�B���O���s���܂��B�uConvert�v�Ƃ����{�^���́A�ʏ��Java��JAR�t�@�C�����AAndroid��DEX�`����JAR�t�@�C���ɕϊ����܂��B�uHello!!!�v�Ƃ������b�Z�[�W�́A���I�N���X���[�f�B���O�̖��Ăяo���ꂽ���\�b�h���Ԃ���������ł��BClear�{�^���̓��b�Z�[�W�������āAConvert�ŕϊ�����Ă���A���I���[�f�B���O����JAR���f�t�H���g�̂��̂ɖ߂��܂��B
�@Java�ɂ́ujava.net.URLClassLoader�v�Ƃ����N���X�����݂��܂��BJava�̏ꍇ�A�V�X�e���N���X���[�_��URLClassLoader�̃T�u�N���X�ɂȂ��Ă��܂��i���̂悤�Ȍ��܂�͂Ȃ��̂ł����A�I���N���̎������܂߁A������Java VM�����̂悤�Ȏ����ɂȂ��Ă��܂��j�B
�@����AAndroid��Dalvik VM�́A�V�X�e���N���X���[�_��URLClassLoader�ł͂Ȃ����肩�AURLClassLoader�ł̓N���X���[�f�B���O�ł��Ȃ��悤�ɐ�������Ă��܂��B��̂Ȃ��ł��傤���B
�@Dalvik VM��Java�̃N���X�t�@�C���t�H�[�}�b�g���g�p�����A�Ǝ���DEX�t�H�[�}�b�g���̗p���Ă��邽�߁A�N���X�t�@�C�����܂܂ꂽJAR�t�@�C�����w�肳��Ă��A�N���X�t�@�C�������݂���f�B���N�g�����w�肳��Ă��Ή��ł��܂���B
�@�܂��A�uURLClassLoader#addURL(URL)�v�Ŋ����̃N���X���[�_�Ɍォ�烊�\�[�X��lj�����邱�Ƃ��A�Z�L�����e�B��h���Ȃ��Ă͂Ȃ�܂���B
�@�ł́ADalvik VM�̃V�X�e���N���X���[�_�́A���������ǂ̂悤�ȃN���X�Ȃ̂ł��傤���B���ꂪ�A����������dalvik.system�p�b�P�[�W�Ɋ܂܂��PathClassLoader�ł��B
�@dalvik.system�ɂ́A4�̃N���X�����݂��܂��B
�N���X�� | �T�v |
---|---|
BaseDexClassLoader | DEX�t�@�C���̊�{�I�Ȏ���������Ă���N���X���[�_ |
DexClassLoader | .jar��.apk����classes.dex��ǂݍ��ރN���X���[�_ |
PathClassLoader | �p�X���w�肵�ăN���X��ǂݍ��ރN���X���[�_ |
DexFile | ��L�N���X���[�_���Ŏg�p����Ă���DEX�t�@�C����\���N���X |
�@���_���Ɍ����Ă��܂��ƁAPathClassLoader�̓A�v������̓��I�N���X���[�f�B���O�ɂ͎g���܂���B���̗��R����q���܂��B
Copyright © ITmedia, Inc. All Rights Reserved.