Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/art/art/tools/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 4 kB image not shown  

Quelle  dex2oat_wrapper

  Sprache: C
 

#! /bin/sh
Copyright (C) 2020 The Android Open Source Project
java.lang.NullPointerException
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
java.lang.NullPointerException
#     http://www.apache.org/licenses/LICENSE-2.0
java.lang.NullPointerException
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

This script is used on host and device. It uses a common subset
shell dialect that should work on the host (e.g. bash), and
Android (e.g. mksh). Try to switch to bash if the shebang above
has launched a pessimal shell on host.
if [ -z "$KSH_VERSION" -a -z "$BASH_VERSION" -a -n "$(which bash)" ]; then
  exec bash -c ". $0" -- "$@"
fi

The purpose of this script is to invoke dex2oat with the right
boot classpath and bootclasspath locations.

Follow all sym links to get the program name.
if [[ -n "$BASH_SOURCE" ]]; then
  PROG_NAME="$BASH_SOURCE"
else
  PROG_NAME="$0"
fi
while [ -h "$PROG_NAME" ]; do
  On Mac OS, readlink -f doesn't work.
  PROG_NAME="$(readlink "$PROG_NAME")"
done

PROG_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
ANDROID_ROOT="$(cd $PROG_DIR/..; pwd -P)"

declare -a args=("$@")
arg_idx=0
while true; do
  if [[ $1 == "-Xbootclasspath:*" ]]; then
    DEX2OAT_BCP=$1
    # Remove '-Xbootclasspath:' from the arguments.
    DEX2OAT_BCP=${DEX2OAT_BCP##-Xbootclasspath:}
    unset args[arg_idx]
    shift
  elif [[ $1 == "-Xbootclasspath-locations:*" ]]; then
    DEX2OAT_BCP_LOCS=$1
    # Remove '-Xbootclasspath-locations:' from the argument.
    DEX2OAT_BCP_LOCS=${DEX2OAT_BCP_LOCS##-Xbootclasspath-locations:}
    unset args[arg_idx]
    shift
  elif [[ $1 == "--32" ]]; then
    BITNESS=32
    LD_LIBRARY_PATH=$ANDROID_ROOT/lib:$LD_LIBRARY_PATH
    unset args[arg_idx]
    shift
  elif [[ $1 == "--64" ]]; then
    BITNESS=64
    LD_LIBRARY_PATH=$ANDROID_ROOT/lib64:$LD_LIBRARY_PATH
    unset args[arg_idx]
    shift
  elif [[ "$1" == "" ]]; then
    break
  else
    shift
  fi
  arg_idx=$((arg_idx + 1))
done

if [ -z "$BITNESS" ]; then
  echo "Either --32 or --64 is required as argument to specify bitness"
  exit 1
fi

# Create boot class path filename or location list.
# It takes one optional argument which is the prefix to be inserted before each entry.
function get_boot_class_path() {
  # Note: This must start with the CORE_IMG_JARS in Android.common_path.mk
  local modules="core-oj core-libart okhttp bouncycastle apache-xml core-icu4j conscrypt"
  local prefix="$1"
  local result=""
  local separator=""
  for module in ${modules}; do
    case "$module" in
      (conscrypt)  local apex="com.android.conscrypt";;
      (core-icu4j) local apex="com.android.i18n";;
      (*)          local apex="com.android.art";;
    esac
    result+="${separator}${prefix}/apex/${apex}/javalib/${module}.jar"
    separator=":"
  done
  echo "$result"
}

# Create default boot class path if none was provided.
if [[ "$DEX2OAT_BCP" = "" ]]; then
  ANDROID_ROOT_MINUS_PWD="${ANDROID_ROOT#$PWD/}"  # For example: out/host/linux-x86
  if [[ "$ANDROID_ROOT_MINUS_PWD" == */
host/* ]]; then
    DEX2OAT_BCP="$(get_boot_class_path $ANDROID_ROOT)"
    DEX2OAT_BCP_LOCS="$(get_boot_class_path $ANDROID_ROOT_MINUS_PWD)"
  elif [[ "$ANDROID_ROOT_MINUS_PWD" == */
target/* ]]; then
    DEX2OAT_BCP="$(get_boot_class_path $ANDROID_ROOT)"
    DEX2OAT_BCP_LOCS="$(get_boot_class_path)"
  else
    echo "Can not determine whether are running on host or target"
    exit 1
  fi
fi

# If the dex2oat binary with the bitness as a suffix doesn't exist,
# try with a dex2oat without suffix.
DEX2OAT_SUFFIX=$BITNESS
if [[ ! -f $ANDROID_ROOT/bin/dex2oat${DEX2OAT_SUFFIX} ]]; then
  DEX2OAT_SUFFIX=""
fi

LD_LIBRARY_PATH=$LD_LIBRARY_PATH \
  $ANDROID_ROOT/bin/dex2oat${DEX2OAT_SUFFIX} \
    --android-root=$ANDROID_ROOT \
    --runtime-arg -Xbootclasspath:$DEX2OAT_BCP \
    --runtime-arg -Xbootclasspath-locations:$DEX2OAT_BCP_LOCS \
    ${args[@]}

Messung V0.5 in Prozent
C=90 H=92 G=90

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-06-29) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.