Попробовал почти тот же код в моем классе приложения, но он работал для меня, вызывался success ().
class MyApplication: MultiDexApplication() {
override fun onCreate() {
super.onCreate()
val core = CrashlyticsCore.Builder()
.build()
Fabric.with(
Fabric.Builder(this)
.kits(Crashlytics.Builder().core(core).build())
.initializationCallback(object: InitializationCallback<Fabric> {
override fun success(p0: Fabric?) {
Timber.d("InitializationCallback success")
}
override fun failure(p0: Exception?) {
Timber.d("InitializationCallback failure")
}
})
.build()
)
...
}
...
}
Проверьте эти
io.fabric.ApiKey
в вашем AndroidManifest.xml
contextProvider.invoke()
соответствующий контекст Спасибо за подробное обновление. Я удовлетворен, что Ваша текущая упаковывающая мусорное ведро стратегия довольно эффективна.
Относительно вопроса, "Точно, на каком количестве наверху упаковывает файловая система ISO 9660 для n файлов в общей сложности b байты?" существует только 2 возможных ответа:
На самом деле существует третий ответ:
(3) Вы действительно не заботитесь об использовании каждого последнего байта на каждом DVD. В этом случае захватите маленькое представительное небольшое количество файлов различных размеров (скажите 5), заполните их, пока они не кратные числа 2 048 байтов и помещают все 2^5 возможные подмножества через genisoimage -print-size
. Затем соответствуйте уравнению nx + y = iso_size - total_input_size на том наборе данных, где n = количество файлов в данном шансе, для нахождения x, который является числом байтов издержек на файл и y, который является постоянной суммой издержек (размер файловой системы ISO 9660, содержащей файлы). Округлите в большую сторону X и Y и используйте ту формулу для оценки размеров файловой системы ISO для данного набора файлов. Для безопасности удостоверьтесь, что Вы используете самые долгие имена файлов, которые появляются где угодно в Вашем наборе для тестовых имен файлов и подвергают каждого отдельной иерархии каталогов, которая так же глубока как самая глубокая иерархия в Вашем наборе.
Я не уверен точно, как Вы в настоящее время делаете это - согласно моему поиску с помощью Google, "Bubblesearch" относится к способу выбрать упорядочивание объектов, которое находится в некотором смысле около жадного упорядочивания, но в Вашем случае, порядок добавляющих файлов к DVD не изменяет необходимые площади, таким образом, этот подход напрасно тратит время, рассматривая несколько различных заказов, которые составляют тот же набор файлов.
Другими словами, если Вы делаете что-то как следующее для генерации списка файлов кандидата:
Затем Вы ищете пространство решения неэффективно - для любого заключительного набора кандидата n файлов, Вы потенциально рассматриваете весь n! способы произвести тот набор. Мое предложение:
Повторяйте это много раз и выбирайте лучший список файлов.
Предложение D Tyler также хорошо: если у Вас есть ~40000 файлов в общей сложности ~500Mb, который означает средний размер файла 12.5 КБ. ISO 9660 использует размер блока 2 КБ, означая, что те файлы тратят впустую в среднем 1 КБ дискового пространства или приблизительно 8% их размера. Так упаковка их вместе с tar сначала сохранит приблизительно 8% пространства.
Хорошие взгляды, J. Случайный. Конечно, мне не нужен каждый последний байт, это главным образом для забавы (и престиж за ланчем). Я хочу смочь ввести du
в CD-ROM и имеют его очень близко к 4700000000.
Я посмотрел на спецификацию ECMA, но как большинство спецификаций это среднее болезненный, и у меня нет уверенности в моей способности разобраться в нем. Также это, кажется, не обсуждает расширения Rock Ridge, или если это делает, я пропустил его.
Я люблю Вашу идею № 3 и думаю, что буду нести его немного далее: я попытаюсь создать довольно богатую модель того, что продолжается, и затем используйте genisoimage -print-size
в ряде filesets для оценки параметров модели. Затем я могу использовать модель, чтобы сделать мою оценку. Это - проект хобби, таким образом, он будет требовать времени, но я найду время для него в конечном счете. Я отправлю ответ здесь для высказывания, сколько потерь устраняется!
Разве использование не может смолить, чтобы хранить файлы на диске? Неясно, пишете ли Вы программу, чтобы сделать это или просто делаете некоторые резервные копии.
Возможно, сделайте некоторое экспериментирование и допустите ошибку на стороне осторожности - некоторое свободное пространство на диске не причинило бы боль.
Так или иначе я предполагаю, что Вы уже рассмотрели их, или что мой ответ упускает суть.
Недавно я провел эксперимент, чтобы найти формулу для получения аналогичной оценки заполнения DVD, и нашел простую формулу с учетом некоторых предположений ... из вашего исходного сообщения эта формула, вероятно, будет низкой номер для вас, похоже, у вас есть несколько каталогов и более длинные имена файлов.
Допущения:
Формула:
174 + floor(count / 42) + sum( ceil(file_size / 2048) )
Пример сценария:
#!/usr/bin/perl -w
use strict;
use POSIX;
sub sum {
my $out = 0;
for(@_) {
$out += $_;
}
return $out;
}
my @sizes = ( 2048 ) x 1000;
my $file_count = @sizes;
my $data_size = sum(map { ceil($_ / 2048) } @sizes);
my $dir_size = floor( $file_count / 42 ) + 1;
my $overhead = 173;
my $size = $overhead + $dir_size + $data_size;
$\ = "\n";
print $size;
I проверил это на дисках, содержащих до 150 КБ файлов, размером от 200 байт до 1 МБ.