В чем разница между различными методами для получения контекста?

Вот еще один пример, который был протестирован и будет соответствовать поиску и amp; заменить шаблоны:

import fileinput
import sys

def replaceAll(file,searchExp,replaceExp):
    for line in fileinput.input(file, inplace=1):
        if searchExp in line:
            line = line.replace(searchExp,replaceExp)
        sys.stdout.write(line)

Пример использования:

replaceAll("/fooBar.txt","Hello\sWorld!$","Goodbye\sWorld.")
382
задан cuihtlauac 5 November 2015 в 13:57
поделиться

2 ответа

Попробуйте следующее:

  1. Десериализовать данные : проанализируйте, как компилируется ваш exe (попробуйте File Analyzer ). Попробуйте десериализовать двоичные данные с помощью обнаруженного языка. Затем сериализуйте его в формате xml (независимо от языка), который может понять каждый язык программирования
  2. . Анализ двоичных данных : попробуйте сохранить различные версии файла с небольшими вариациями и используйте программу diff для анализа значения каждый бит с шестнадцатеричным редактором. Используйте его вместе с методами взлома двоичного кода (например, Как взломать формат двоичного файла от Frans Faase )
  3. Обратный инжиниринг приложения : попробуйте получить код с помощью инструментов обратного проектирования для используемого языка программирования для сборки приложения (находится в File Analyzer ). обычно имеют два вида контекста, Activity и Application.

    Прочитав статью немного дальше, вы узнаете о разнице между ними и о том, когда вы можете рассмотреть возможность использования Context приложения ( Activity.getApplicationContext () ) вместо использования Activity context this ). В основном контекст приложения связан с приложением и всегда будет одним и тем же на протяжении всего жизненного цикла вашего приложения, тогда как контекст действия связан с действием и может быть уничтожен много раз, поскольку действие уничтожается во время изменения ориентации экрана и

    Я не смог найти ничего о том, когда использовать getBaseContext (), кроме сообщения Дайанн Хакборн, одной из инженеров Google, работающих над Android SDK:

    Не используйте getBaseContext (), просто использовать контекст, который у вас есть.

    Это было из сообщения в группе новостей разработчиков Android , вы можете подумать о том, чтобы задать свой вопрос и там, потому что горстка людей, работающих над настоящим монитором Android, группы новостей и ответьте на вопросы.

    Поэтому в целом кажется предпочтительным использовать глобальный контекст приложения, когда это возможно.

303
ответ дан 22 November 2019 в 23:49
поделиться

Во-первых, я согласен, что мы должны использовать appcontext везде, где это возможно. затем "this" в activity. у меня никогда не было необходимости в basecontext.

В моих тестах в большинстве случаев их можно менять местами. В большинстве случаев, причина, по которой вы хотите получить доступ к контексту - это доступ к файлам, предпочтениям, базе данных и т.д. Эти данные в конечном итоге отражаются в виде файлов в личной папке данных вашего приложения (/data/data/). Независимо от того, какой контекст вы используете, они будут сопоставлены с той же папкой/файлами, так что вы в порядке.

Это то, что я наблюдал. Возможно, есть случаи, когда их следует различать.

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

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