Создание каталога с помощью Android Studio не всегда работает. Возможно, вам придется создать каталог вручную в структуре каталогов (в / app / sampledata /) без использования Android Studio. Как только вы создадите его (например, через Windows Explorer), он должен появиться в Android Studio. См. Следующий ответ для получения дополнительной информации о примерах данных в целом: Как разместить новые ресурсы-заполнители в проекте Android Studio («инструменты: образец» ресурсов)?
«В отличие от таких ресурсов, как изображения, шрифты и т. д. Образцы данных не помещаются в / res / (следовательно, они не компилируются с приложением, следовательно. Вероятно, легче отфильтровать их, поместив в совершенно отдельный каталог). Они находятся в / app / sampledata /, например: /app/sampledata/image.png."
Существуют некоторые оборотные стороны:
, Мы делаем статическое подключение для наших Приложений Windows, прежде всего, потому что это позволяет развертывание xcopy, которое просто не возможно с установкой или доверием SxS DLL способом, который работает, начиная с процесса и механизма не хорошо документируется или не легко доступен удаленно. При использовании локального DLL в каталоге установки, он будет вид работы, но он не хорошо поддерживается. Неспособность легко сделать удаленная установка, не проходя MSI в удаленной системе является основной причиной, почему мы не используем динамическое подключение, но (как Вы указали) существует много других преимуществ для статического подключения. Существуют за и против каждому; надо надеяться, это помогает перечислить их.
Одна хорошая функция использования dll's - то, что, если несколько процессов загружает тот же dll, его код может быть совместно использован ими. Это может сохранить память и сократить загружающиеся времена для приложения, загружающего dll, это уже используется другой программой.
Нет, ничто нового на той передней стороне. Сохраните это тем путем.
Пока Вы сохраняете свое использование ограниченным определенными библиотеками и не используете dll's затем, необходимо быть хорошими.
, К сожалению, существуют некоторые библиотеки, которые Вы не можете связать статически. Лучшим примером, который я имею, является OpenMP. При использовании в своих интересах поддержки OpenMP Visual Studio необходимо будет удостовериться, что время выполнения установлено (в этом случае vcomp.dll).
при использовании dll's затем, Вы не можете передать некоторые объекты назад и вперед без некоторой серьезной гимнастики. станд.:: строки приходят на ум. Если Ваш exe и dll динамично связаны затем, выделение происходит в в CRT. Иначе Ваша программа может попытаться выделить строку на одной стороне и освободить ее на другом. Следуют плохие вещи...
Тем не менее я все еще статически связываю свой exe's и dll's. Это действительно уменьшает много variablilty в установке, и я считаю это стоимостью в несколько ограничений.
Совершенно определенно.
Выделение сделано на 'статической' "куче". Начиная с выделения освобождение должно быть сделано на той же "куче", это означает, что при поставке библиотеки необходимо заботиться, что клиентский код не может назвать 'Ваш' p = new LibClass()
и удалить тот объект сам с помощью delete p;
.
Мое заключение: или выделение щита и освобождение из клиентского кода, или динамично связывают CRT.
Большинство ответов, которые я слышу об этом, связало совместное использование Вашего dll's с другими программами, или наличие их dll's быть обновленным без потребности исправить Ваше программное обеспечение.
откровенно я полагаю, что это оборотные стороны, не позитивные аспекты. Когда третье лицо dll обновляется, это может измениться достаточно для повреждения программного обеспечения. И в эти дни, пространство на жестком диске не так драгоценно, как это однажды было, дополнительный 500k в Вашем исполняемом файле?Какая разница?
позитивные аспекты явно перевешивают оборотные стороны, по-моему
Есть некоторые лицензии на программы, такие как LGPL, которые требуют, чтобы вы либо использовали DLL, либо распространяли свое приложение в виде объектных файлов, которые пользователь может соединить вместе. Если вы используете такую библиотеку, вы, вероятно, захотите использовать ее как DLL.