Может кто-нибудь дать сводку о том, что с помощью NDK делает мое приложение в терминах устройства, которые могут использовать приложение
только устройство, работающее на процессоре, для которого у вас есть NDK .so
будет способный запускать ваше приложение.
и какие последствия для поддержания моего приложения?
Для тестирования на нескольких архитектурах процессоров может потребоваться оборудование для каждой архитектуры. Я говорю «может», потому что ...
Что происходит, когда появляются новые архитектуры для Android?
... мы действительно понятия не имеем. Помимо добавления поддержки ARM7, NDK не изменил своих целей.
Прямо сейчас, есть два основных не-ARM платформы для Android, что я могу думать:
- Intel Atom, которые используются устройства Google TV. На момент написания этой статьи NDK этого не поддерживает. Однако вы также не можете отправлять приложения для Google TV. Таким образом, возможно, что NDK будет обновляться к моменту, когда мы сможем писать приложения Google TV.
- MIPS. На момент написания этой статьи NDK этого не поддерживает. Я понятия не имею, какие планы могут быть в этой области.
Возможно, эмуляторы будут эмулировать эти процессоры. В конце концов, существующий эмулятор Android имитирует ARM5. Однако, если и до тех пор, пока это не произойдет, вам понадобится тестовое оборудование для каждой архитектуры, которую вы собираетесь поддерживать.
Должен ли я обновлять свое приложение каждый раз, когда появляется новая архитектура?
Только если вы хотите поддержать новую архитектуру. Пока не будет критической массы устройств, которые могут получить доступ к вашему приложению, любая новая архитектура не будет очень важна. «Критическая масса» может быть связана с продажами общих устройств, или это может быть связано с тем, что вы совершаете сделку с OEM, чтобы ваше приложение было подключено на чей-то прибор.
Код прост, хотя и будет работать на всех арках.
Следите за своим концом.
Да, для каждой архитектуры вам понадобится исполняемый файл.Возможно, вы можете просто включить их все и загрузить те, которые вам нужны, но я никогда не использовал NDK. Что именно вы делаете на долгах? Вы уверены, что это узкое место в вашем коде? Вы реализовали его и профилировали? – Falmarri
Длительная операция включает в себя маскировку первых 8 бит, выполнение нескольких дополнений и умножений, возврат битов и последующее выполнение этого для оставшихся битов. Это мучительно медленно в Java (e..g 1s для выполнения, когда я хочу около 0,1 с) и кажется идеальным кандидатом для NDK. Код прост, хотя и будет работать на всех арках. – RichardNewton