1 #!/bin/bash 2 # 3 # Copyright (C) 2008 The Android Open Source Project 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 # Stop if something fails. 18 set -e 19 20 # Write out files with 65500 total static fields, instance fields, and methods, 21 # so that references to the Jumbo fields in Main will be guaranteed to be jumbo 22 # instructions. 23 24 awk ' 25 BEGIN { 26 writeFileField("FillerStatic", "static public int staticInt"); 27 writeFileField("FillerField", "public int fieldInt"); 28 writeFileMethod("FillerMethod"); 29 } 30 function writeFileField(name, type) { 31 fileName = "src/" name ".java"; 32 printf("public class %s {\n", name) > fileName; 33 for (i = 1; i <= 65500; i++) { 34 printf(" %s%d;\n", type, i) > fileName; 35 } 36 printf("}\n") > fileName; 37 } 38 function writeFileMethod(name) { 39 fileName = "src/" name ".java"; 40 printf("public class %s {\n", name) > fileName; 41 for (i = 1; i <= 65500; i++) { 42 printf(" public void meth%d() { }\n", i) > fileName; 43 } 44 printf("}\n") > fileName; 45 }' 46 47 mkdir classes 48 ${JAVAC} -d classes `find src -name '*.java'` 49 ${JAVAC} -d classes `find src2 -name '*.java'` 50 51 dx -JXmx1024m --debug --dex --no-optimize \ 52 --dump-to=classes.lst --output=classes.dex classes 53 zip test.jar classes.dex 54