Каков рекомендуемый способ включения исходного кода Android в дополнение к Android SDK?

#android #sdk #include

#Android #sdk #включить

Вопрос:

Я новый разработчик для программирования на Android. Я понимаю, что Android SDK не содержит всех классов из исходного кода Android. Например, AtCommandResult.class отсутствует (скрывается) в пакете android.bluetooth в SDK.

Иногда, однако, я хочу использовать скрытый код в своем приложении, и мне интересно, как лучше всего это сделать. Один из подходов, который я могу придумать, — включить соответствующий исходный код в мой проект с другим именем пакета, чтобы избежать конфликта с существующим ядром. Но проблема с этим подходом заключалась бы в том, что с этого момента мне пришлось бы самостоятельно поддерживать код. Один или два класса в порядке, но вы знаете, к чему я клоню.

Есть ли какой-либо лучший способ, кроме как беспокоить Google, чтобы включить код в SDK? Заранее спасибо.

Комментарии:

1. в корневом телефоне это возможно.

2. @Padma Я не уверен, как мой вопрос связан с корневым телефоном, поскольку я задаю вопрос относительно программирования. Можете ли вы уточнить?

Ответ №1:

Возможно, вы захотите использовать .Файл AIDL:

http://developer.android.com/guide/developing/tools/aidl.html

Они уже могут использоваться для доступа, например, к функциям телефонии.

Пример кода здесь: http://code.google.com/p/auto-answer/source/browse/trunk/src/com/android/internal/telephony/ITelephony.aidl?r=13

Комментарии:

1. Я не совсем понимаю, о чем вы здесь говорите. В моем проекте я в основном хочу использовать класс, который SDK не предоставляет, но который есть в телефоне Android. Как aidl может решить эту проблему?

2. Aidl подобен интерфейсу для существующего класса. Для его компиляции вам не обязательно использовать исходный код класса, только пакет и методы.

3. О, я понимаю, о чем ты говоришь. Поскольку класс уже существует, я могу просто создать интерфейс и заглушку для него и делать с ним все, что захочу. Мне это нравится! Это намного лучше, чем я первоначально думал. Спасибо