Изменение и перекомпиляция Android SDK

Я знаю, что некоторые методы и некоторые классы, реализованные в Android, не экспортируются в общедоступный SDK Android. Мне удалось создать приложение, которое использует некоторые из этих функций, скомпилировав свое приложение, поместив его в дерево Android. Можно ли будет экспортировать эти функции в Android SDK, перекомпилировав его из исходников? Как это может быть сделано? Могу ли я также включить пользовательские классы и функции в Android SDK (при условии, конечно, что я создам новый SDK и новую прошивку)? Спасибо!


person Luca Carlon    schedule 18.01.2011    source источник


Ответы (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
comment
Я разрабатываю прошивку, которую компилирую, поэтому у меня есть контроль над этим. Но в любом случае, насколько мне известно, исходники SDK находятся внутри того же дерева исходников системы Android. Можно скомпилировать с помощью mm sdk. И на самом деле я могу это сделать. Я собрал свой собственный SDK. Но как внести в него изменения? Какие классы он компилирует? Те же, что компилируются при компиляции системы? Но тогда как возможно, что некоторые API не экспортируются в SDK, если исходные файлы одинаковы? Я могу вносить изменения в систему и компилировать свою собственную, но как это сделать вместо SDK? Спасибо! - person Luca Carlon; 18.01.2011
comment
Я не уверен, что вы подразумеваете под не экспортированными в SDK. Можете ли вы привести пример? Я думаю, что самое большее, что они делают, это помечают их как скрытые, чтобы они не отображались в документах, но вы все равно можете получить к ним доступ. - person Cheryl Simon; 19.01.2011
comment
Ну, я видел это несколько раз в прошлом. Теперь я помню два примера: класс FileUtils, android.os.FileUtils, используется таким приложением, как MediaProvider, но я не могу найти для него документацию и не могу использовать этот класс в проекте Android в Eclipse. Другой пример: я хотел бы добавить возможность установки пакетов (методом installPackage) в SDK. Это может быть сделано с помощью приложения PackageManager, поскольку оно скомпилировано в системе, но это невозможно с SDK по умолчанию (по соображениям безопасности, которые не относятся ко мне, поскольку я создаю прошивку). - person Luca Carlon; 19.01.2011