Для чего нужен файл .la libtool?

Вот статья на сайте Developer.com , сравнивающая производительность парсов DOM, SAX и Pull на Android. Он обнаружил, что парсер DOM является самым медленным, тогда парсинг Pull и парсер SAX являются самыми быстрыми в своем тесте.

Если вы собираетесь много разбираться в своем приложении, может стоить сопоставить различные варианты, чтобы увидеть, какие из них лучше всего подходят для вас.

Я использовал XmlPullParser через XmlResourceParser и нашел

Он работает через события возврата XML, сообщая вам, что там найдено.

Если вы его используете, ваш код будет выглядеть примерно так: :

XmlResourceParser parser = context.getResources().getXml(R.xml.myfile);

try {
    int eventType = parser.getEventType();

    while (eventType != XmlPullParser.END_DOCUMENT) {
        String name = null;

        switch (eventType){
            case XmlPullParser.START_TAG:
                name = parser.getName().toLowerCase();

                if (name.equals(SOME_TAG)) {
                    for (int i = 0;i < parser.getAttributeCount();i++) {
                        String attribute = parser.getAttributeName(i).toLowerCase();

                        if (attribute.equals("myattribute")) {
                            String value = parser.getAttributeValue(i);
                        }

                    }
                }

                break;
            case XmlPullParser.END_TAG:
                name = parser.getName();
                break;
        }

        eventType = parser.next();
    }
}
catch (XmlPullParserException e) {
    throw new RuntimeException("Cannot parse XML");
}
catch (IOException e) {
    throw new RuntimeException("Cannot parse XML");
}
finally {
    parser.close();
}

Если вы хотите анализировать XML, который не из файла ресурсов, вы можете создать новый XmlPullParser, используя класс XmlPullParserFactory , а затем вызвать setInput() .

143
задан Peter Mortensen 26 November 2017 в 16:25
поделиться

1 ответ

Это текстовый файл, который включает описание библиотеки.

Он позволяет libtool создавать независимые от платформы имена.

Например, ] libfoo идет по адресу:

Под Linux:

/lib/libfoo.so       # Symlink to shared object
/lib/libfoo.so.1     # Symlink to shared object
/lib/libfoo.so.1.0.1 # Shared object
/lib/libfoo.a        # Static library
/lib/libfoo.la       # 'libtool' library

Под Cygwin :

/lib/libfoo.dll.a    # Import library
/lib/libfoo.a        # Static library
/lib/libfoo.la       # libtool library
/bin/cygfoo_1.dll    # DLL

Под Windows MinGW:

/lib/libfoo.dll.a    # Import library
/lib/libfoo.a        # Static library
/lib/libfoo.la       # 'libtool' library
/bin/foo_1.dll       # DLL

Итак, libfoo.la - единственный файл который сохраняется между платформами с помощью libtool , позволяя понять, что происходит с:

  • зависимостями библиотек
  • фактическими именами файлов
  • версией и ревизией библиотеки

вне зависимости от реализации библиотек на конкретной платформе .

132
ответ дан 23 November 2019 в 23:01
поделиться
Другие вопросы по тегам:

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