Binary translation is useful in migrating binaries to architectures different from the one they are originally compiled for. The work in this thesis is an optimization of an existing binary translator developed by Chen et al. in 2008. The goal of the binary translator is to allow Android applications with native code compiled for ARM architecture to run on MIPS-based hardware. The ideal time to translate an Android application is when it is being installed. Therefore, the binary translator must execute on a mobile device which has limited compute power. The original binary translator encounters a severe limitation when translating large applications. On those applications, translation takes more than one hour to complete. In the worst case, the translator crashes due to insufficient memory. We present Input Division, an optimization technique that resolves the aforementioned issues. Input Division improved the original implementation with a more advanced input analysis technique that significantly accelerates output binary generation. As a result, we achieved up to 18.9X speedup in translation time and 48X reduction in memory usage.