Для этого нет публичного API. Тем не менее, вы можете использовать грязное отражение, чтобы создать свою символическую ссылку. Я просто проверял следующий код и он работал для меня:
// static factory method to transfer a file from assets to package files directory
AssetUtils.transferAsset(this, "test.png");
// The file that was transferred
File file = new File(getFilesDir(), "test.png");
// The file that I want as my symlink
File symlink = new File(getFilesDir(), "symlink.png");
// do some dirty reflection to create the symbolic link
try {
final Class<?> libcore = Class.forName("libcore.io.Libcore");
final Field fOs = libcore.getDeclaredField("os");
fOs.setAccessible(true);
final Object os = fOs.get(null);
final Method method = os.getClass().getMethod("symlink", String.class, String.class);
method.invoke(os, file.getAbsolutePath(), symlink.getAbsolutePath());
} catch (Exception e) {
// TODO handle the exception
}
Быстрый поиск Google показал этот ответ, если вы не хотите использовать отражение: http://androidwarzone.blogspot.com/2012/03/creating-symbolic-links-on-android-from.html
Вы имеете в виду вашу «папку с ресурсами» на вашей машине разработки? Или вы имеете в виду активы, когда они используются во время выполнения? Пожалуйста, имейте в виду, что активы, упакованные в вашем APK, остаются в APK и не распакованы, а просто считываются из самого APK. Также обратите внимание, что APK-файл представляет собой ZIP-архив, и AFAIK в архивах ZIP не содержит никакой символической конструкции. – CommonsWare