Я знаю, что некоторые методы и некоторые классы, реализованные в Android, не экспортируются в общедоступный SDK Android. Мне удалось создать приложение, которое использует некоторые из этих функций, скомпилировав свое приложение, поместив его в дерево Android. Можно ли будет экспортировать эти функции в Android SDK, перекомпилировав его из исходников? Как это может быть сделано? Могу ли я также включить пользовательские классы и функции в Android SDK (при условии, конечно, что я создам новый SDK и новую прошивку)? Спасибо!
Изменение и перекомпиляция Android SDK
Ответы (2)
Я не пробовал, но это должен быть ответ на мой вопрос: https://android.googlesource.com/platform/sdk/+/master/docs/howto_build_SDK.txt.
person
Luca Carlon
schedule
21.02.2011
Можно скачать SDK и внести в него изменения.
Если вы выпускаете общедоступное приложение, вам не следует использовать какие-либо закрытые API, поскольку нет никаких гарантий, что они будут доступны на всех телефонах или в будущих версиях ОС.
person
Cheryl Simon
schedule
18.01.2011
Я разрабатываю прошивку, которую компилирую, поэтому у меня есть контроль над этим. Но в любом случае, насколько мне известно, исходники SDK находятся внутри того же дерева исходников системы Android. Можно скомпилировать с помощью mm sdk. И на самом деле я могу это сделать. Я собрал свой собственный SDK. Но как внести в него изменения? Какие классы он компилирует? Те же, что компилируются при компиляции системы? Но тогда как возможно, что некоторые API не экспортируются в SDK, если исходные файлы одинаковы? Я могу вносить изменения в систему и компилировать свою собственную, но как это сделать вместо SDK? Спасибо!
- person Luca Carlon; 18.01.2011
Я не уверен, что вы подразумеваете под не экспортированными в SDK. Можете ли вы привести пример? Я думаю, что самое большее, что они делают, это помечают их как скрытые, чтобы они не отображались в документах, но вы все равно можете получить к ним доступ.
- person Cheryl Simon; 19.01.2011
Ну, я видел это несколько раз в прошлом. Теперь я помню два примера: класс FileUtils, android.os.FileUtils, используется таким приложением, как MediaProvider, но я не могу найти для него документацию и не могу использовать этот класс в проекте Android в Eclipse. Другой пример: я хотел бы добавить возможность установки пакетов (методом installPackage) в SDK. Это может быть сделано с помощью приложения PackageManager, поскольку оно скомпилировано в системе, но это невозможно с SDK по умолчанию (по соображениям безопасности, которые не относятся ко мне, поскольку я создаю прошивку).
- person Luca Carlon; 19.01.2011