From 678ba75bb9b700a927d2f8f3bea725086c59405d Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Tue, 15 Aug 2017 13:37:07 -0700 Subject: Add some preloaded classes related files and tools Added copyright-header to be used by generation scripts to automatically add a copyright header to preloaded classes. Add a default blacklist file to avoid needing to manually remove classes that can't be preloaded in the zygote. Added a script go generate a preloaded classes list from a raw class list. This script adds the copyright headers and comments and removes blacklisted classes. Bug: 37966211 Test: manually run the scripts Change-Id: I166f990c41978c80134d2f1e12c1b1079a12752a --- config/copyright-header | 15 +++++++++++++++ config/generate-preloaded-classes.sh | 33 +++++++++++++++++++++++++++++++++ config/preloaded-classes-blacklist | 1 + 3 files changed, 49 insertions(+) create mode 100644 config/copyright-header create mode 100755 config/generate-preloaded-classes.sh create mode 100644 config/preloaded-classes-blacklist diff --git a/config/copyright-header b/config/copyright-header new file mode 100644 index 000000000000..93071cd7e2ef --- /dev/null +++ b/config/copyright-header @@ -0,0 +1,15 @@ +# +# Copyright (C) 2017 The Android Open Source Project +# +# 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 +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# 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. +# diff --git a/config/generate-preloaded-classes.sh b/config/generate-preloaded-classes.sh new file mode 100755 index 000000000000..d55190bf4256 --- /dev/null +++ b/config/generate-preloaded-classes.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# +# Copyright (C) 2017 The Android Open Source Project +# +# 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 +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# 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. +if [ "$#" -lt 2 ]; then + echo "Usage $0 [extra classes files]" + exit 1 +fi +echo "# Preloaded-classes filter file for phones. +# +# Classes in this file will be allocated into the boot image, and forcibly initialized in +# the zygote during initialization. This is a trade-off, using virtual address space to share +# common heap between apps. +# +# This file has been derived for mainline phone (and tablet) usage. +#" +input=$1 +blacklist=$2 +shift 2 +extra_classes_files=("$@") +sort "$input" "${extra_classes_files[@]}" | uniq | grep -f "$blacklist" -v -F -x + diff --git a/config/preloaded-classes-blacklist b/config/preloaded-classes-blacklist new file mode 100644 index 000000000000..48cdce852872 --- /dev/null +++ b/config/preloaded-classes-blacklist @@ -0,0 +1 @@ +placeholder -- cgit v1.2.3-59-g8ed1b