안녕하세요,
처음으로 질문글을 올리는 이충희라고 합니다. ^^

Eclipse에서 build한 .class / .dex / .apk 파일과, Ant로 build 한 파일이 서로 다르게 나타나는 문제에 대하여
질문드리고자 합니다.

1. 개발환경 : Android 1.6, Eclipse Galileo, Ant 1.8.0RC1
2. 나타나는 현상
   - Eclipse를 사용하던 중에, Ant로 빌드를 해야 할 일이 있어서
     android dev site의 document를 참고하여 Ant 빌드 스크립트( build.xml )를 만들었습니다.
   - Eclipse를 사용하여 빌드된 class, dex, apk 파일은 [Project folder]/bin 에
     Ant를 사용하여 빌드된 class, dex, apk 파일은 [Project folder]/bin_1.6 에 들어가도록 설정하였습니다.
   - 위에서 빌드한 class, dex, apk 파일을 merge tool(araxis merge를 사용하였습니다)을 사용하여 비교해 보았는데,
     다르게 나타났습니다.
    - Eclipse의 빌드 옵션(Windows - Preference - Java - Complier) 화면은 다음과 같습니다.
 JavaComplierOption.png 

   - Eclipse의 Java Building option(Windows - Preference - Java - Complier - Building) 화면은 다음과 같습니다.
JavaCompilerBuildingOption.png 
  - 프로젝트에서 사용한 build.xml의 내용은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<project name="ShowMediaPlayer" default="debug">
    <!-- The local.properties file is created and updated by the 'android' tool.
         It contains the path to the SDK. It should *NOT* be checked in in Version
         Control Systems. -->
    <property file="local.properties" />
    <!-- The build.properties file can be created by you and is never touched
         by the 'android' tool. This is the place to change some of the default property values
         used by the Ant rules.
         Here are some properties you may want to change/update:
         application.package
             the name of your application package as defined in the manifest. Used by the
             'uninstall' rule.
         source.dir
             the name of the source directory. Default is 'src'.
         out.dir
             the name of the output directory. Default is 'bin'.
         Properties related to the SDK location or the project target should be updated
          using the 'android' tool with the 'update' action.
         This file is an integral part of the build system for your application and
         should be checked in in Version Control Systems.
         -->
 <property name="out-folder" value="bin_1.6" />
     <property name="gen-folder" value="gen_1.6" />
 <property name="out-classes" value="${out-folder}" />
    <!-- The default.properties file is created and updated by the 'android' tool, as well
         as ADT.
         This file is an integral part of the build system for your application and
         should be checked in in Version Control Systems. -->
    <property file="default.properties" />
 <!-- The final package file to generate -->
    <property name="out-debug-unaligned-package" value="${out-folder}/${ant.project.name}-debug-unaligned.apk"/>
    <property name="out-debug-package" value="${out-folder}/${ant.project.name}.apk"/>
    <property name="out-unsigned-package" value="${out-folder}/${ant.project.name}-unsigned.apk"/>
    <property name="out-unaligned-package" value="${out-folder}/${ant.project.name}-unaligned.apk"/>
    <property name="out-release-package" value="${out-folder}/${ant.project.name}-release.apk"/>
    <!-- Custom Android task to deal with the project target, and import the proper rules.
         This requires ant 1.6.0 or above. -->
    <path id="android.antlibs">
        <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
        <pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
        <pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
        <pathelement path="${sdk.dir}/tools/lib/apkbuilder.jar" />
        <pathelement path="${sdk.dir}/tools/lib/jarutils.jar" />
    </path>
    <taskdef name="setup"
        classname="com.android.ant.SetupTask"
        classpathref="android.antlibs" />
    <!-- Execute the Android Setup task that will setup some properties specific to the target,
         and import the build rules files.
         The rules file is imported from
            <SDK>/platforms/<target_platform>/templates/android_rules.xml
         To customize some build steps for your project:
         - copy the content of the main node <project> from android_rules.xml
         - paste it in this build.xml below the <setup /> task.
         - disable the import by changing the setup task below to <setup import="false" />
         This will ensure that the properties are setup correctly but that your customized
         build steps are used.
    -->
    <setup />
 <!-- Create the output directories if they don't exist yet. -->
    <target name="dirs">
        <echo>Creating output directories if needed...</echo>
        <mkdir dir="${resource-folder}" />        
        <mkdir dir="${gen-folder}" />
        <mkdir dir="${out-folder}" />
        <mkdir dir="${out-classes}" />
    </target>
  <!-- Generate java classes from .aidl files. -->
    <target name="aidl" depends="dirs">
        <echo>Compiling aidl files into Java classes...</echo>
        <apply executable="${aidl}" failonerror="true">
            <arg value="-p${android-aidl}" />
            <arg value="-I${source-folder}" />
            <arg value="-o${gen-folder}" />
            <fileset dir="${source-folder}">
                <include name="**/*.aidl"/>
            </fileset>
        </apply>
    </target>
 <target name="compile" depends="resource-src, aidl">
        <javac encoding="utf-8" source="1.6" target="1.6" debug="true" 
    debuglevel="vars, lines, source"
    extdirs=""
                destdir="${out-classes}"
                bootclasspathref="android.target.classpath">
            <src path="${source-folder}" />
            <src path="${gen-folder}" />
            <classpath>
    <pathelement path="${main-out-classes}"/>
    <fileset dir=".\lib\1.6" includes="ktsmf.jar"/>
    <fileset dir=".\lib\kt" includes="kaf.jar"/>    
            </classpath>
         </javac>
    </target>
  <target name="dex" depends="compile">
        <echo>Converting compiled files and external libraries into ${out-folder}/${dex-file}...</echo>
        <apply executable="${dx}" failonerror="true" parallel="true">
            <arg value="--dex" />
            <arg value="--output=${intermediate-dex-location}" />
            <arg path="${out-classes-location}" />
   <fileset dir=".\lib\1.6" includes="ktsmf.jar"/>
   <fileset dir=".\lib\kt" includes="kaf.jar"/>            
        </apply>
    </target>
 <!-- Package the application and (maybe) sign it with a debug key.
         This requires the property sign.package to be set to true or false. -->
    <target name="package">
        <apkbuilder
                outfolder="${out-folder}"
                basename="${ant.project.name}"
                signed="${sign.package}"
                verbose="true">
            <file path="${intermediate-dex}" />
            <sourcefolder path="${source-folder}" />
            <jarfolder path=".\lib\1.6" />
            <nativefolder path="${native-libs-folder}" />
        </apkbuilder>
    </target>
</project>

  - Android SDK의 template 폴더 안의 android-rules.xml 파일을 조작하여(컴파일이 안 되도록 하고, dex 및 apk 빌드는 되도록 처리)
    테스트 해 본 결과
    class 파일이 같은 경우에도 dex 및 apk 파일은 서로 다르게 생성됩니다.

3. 질문내용
  - 각각의 빌드 결과물이 다르지만, source가 같으므로...
    각기 시뮬레이터(or 폰)에서 똑같이 동작한다고 생각할 수도 있을까요?
    
    참고로, http://dev.eclipse.org/newslists/news.eclipse.newcomer/msg12193.html  에 보면
    eclipse는 javac를 쓰지 않고 eclipse만의 built-in java complier를 사용한다고 되어 있습니다.

   그러면, 클래스 파일이 다른 것이 설명이 되는데요...

  - 두 개의 컴파일 결과물이 똑같도록 빌드 옵션을 맞춰주려고 해 보았는데 잘 되지 않았습니다.
    어떻게 하면 컴파일 결과물이 똑같도록 할 수 있을까요?

    위에 첨부한 build.xml의 <target name="compile" depends="resource-src, aidl"> 부분을 보시면 
    ant에서 설정한 javac option을 보실 수 있습니다.

이상입니다.

고수님들의 많은 도움 부탁드립니다.
긴 글 읽어주셔서 감사합니다. ^^

추가 정보가 필요하시면 댓글 달아 주세요.

오늘도 좋은 하루 되세요.
    
P.S) 공지사항은 잘 읽어 보았습니다.