У меня есть некоторые сомнения при использовании изображения busybox

Это отлично работает для меня в API 23

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
    android:icon="@drawable/ic_menu"
    android:orderInCategory="100"
    android:title="Option Menu"
    app:showAsAction="always">
    <menu>
        <item
            android:id="@+id/action_myorder"
            android:icon="@drawable/ic_order"
            android:title="My Order" />
        <item
            android:id="@+id/action_myaccount"
            android:icon="@drawable/ic_account"
            android:title="My Account" />
        <item
            android:id="@+id/action_share"
            android:icon="@drawable/ic_share"
            android:title="Share" />
        <item
            android:id="@+id/action_term_condition"
            android:icon="@drawable/ic_terms"
            android:title="Term and Conditions" />
        <item
            android:id="@+id/action_logout"
            android:icon="@drawable/ic_logout"
            android:title="Logout" />
    </menu>
</item>

0
задан zhang 18 January 2019 в 06:29
поделиться

1 ответ

Это все один и тот же файл, поэтому du (1) не считает их несколько. (Это требуется в спецификации POSIX .) Вы увидите это, если запустите ls -i в каталоге: у каждой команды будет один и тот же номер, где этот номер однозначно идентифицирует фактический основной файл в диск.

Как работает Busybox, есть один двоичный файл, который предоставляет все встроенные команды, и когда он запускается, он смотрит на имя, которое он запустил, чтобы решить, что делать. Команда ln (1) по умолчанию создаст жесткую ссылку или альтернативное имя для существующего файла:

# copy a to b1; if you delete a then b1 is still intact
cp a b1
# b has the name of a; if you delete a then b2 is "dangling"
ln -s a b2
# b3 is a; if you delete a then b3 is fine; if you change a you change b3 too
ln a b

ls -li

Так sh, cp, busybox, [ 116] и т.д. это буквально все один и тот же (компактный) файл, и поэтому образ Docker (или загрузочный носитель) на основе Busybox такой крошечный.

0
ответ дан David Maze 18 January 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: