Android Eclipse: Customizing the build process -
i have many graphic resources in application , support different screen sizes differently sized graphic resources. however, app large if include 3 different versions of every graphic resource in final apk (i.e. res/drawable-hdpi, res/drawable-ldpi, res/drawable-mdpi). able generate 3 different apks testing--and deployment--purposes (see using mulitple apks), each relevant graphical resources included.
is there way customize android build process (i'm using eclipse) make possible? if not possible in eclipse possible command line?
my searching indicates many people using build tools ant , maven type of problem, , android-sdk has tool support ant out of box.
notes on answer: after performing tutorial below follow these steps (they clear after tutorial , reading ant manual ant main_rules.xml comes android-sdk):
- copy contents of main_rules build.xml (as specified in build.xml comments)
- make 3 new tasks follows:
<property name="my.custom_res_folder" value="${basedir}/custom_res"/> <property name="my.drawable_folder" value="${my.custom_res_folder}/drawable"/> <property name="my.drawable_hdpi" value="${resource.absolute.dir}/drawable-hdpi"/> <property name="my.drawable_mdpi" value="${resource.absolute.dir}/drawable-mdpi"/> <property name="my.drawable_ldpi" value="${resource.absolute.dir}/drawable-ldpi"/> <property name="my.drawable_default" value="${resource.absolute.dir}/drawable"/>
<target name="my-make-custom-resource-directory"> <echo message="my-make-custom-resource-directory"/> <mkdir dir="${my.custom_res_folder}"/> <mkdir dir="${my.drawable_folder}"/> <copy todir="${my.custom_res_folder}/layout"> <fileset dir="${resource.absolute.dir}/layout"/> </copy> <copy todir="${my.custom_res_folder}/menu"> <fileset dir="${resource.absolute.dir}/menu"/> </copy> <copy todir="${my.custom_res_folder}/values"> <fileset dir="${resource.absolute.dir}/values"/> </copy> </target> <target name="my-make-res-small" depends="my-make-custom-resource-directory"> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_ldpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_mdpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_hdpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_default}"/> </copy> </target> <target name="my-make-res-medium" depends="my-make-custom-resource-directory"> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_mdpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_hdpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_ldpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_default}"/> </copy> </target> <target name="my-make-res-large" depends="my-make-custom-resource-directory"> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_hdpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_mdpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_ldpi}"/> </copy> <copy todir="${my.drawable_folder}" overwrite="false"> <fileset dir="${my.drawable_default}"/> </copy> </target>
- after running 1 of my-make-res-x targets new resource folder should created
- modify debug , packaging , compiling targets , remove properties point old resources folder property pointing new resource folder (you may want replicate tasks , name them else
- then run modified debug task.
i go ant. here's tutorial you: http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html
Comments
Post a Comment