|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
Использование NDK03.06.2014, 07:24. Показов 2139. Ответов 5
Метки нет (Все метки)
Пытаюсь освоить NDK... И как всегда не хватает ЗАДАНИЙ! Не могу придумать где можно использовать (для новичка в с++)...
Писать еще один игровой движок (на фоне десятка готовых профессиональных) не хочу... Дополнительную систему безопасности - рано... То что видел в примерах - поражает! Хочу написать свои либы, которые будут быстрее и круче явовских... Где Вы использовали NDK в работе??? Не для лаб или курсовых, а для реальных проектов??? Причем самописные, а не готовые либы(игры, криптографию, OpenCV)? И были ли проблемы при распространении на чужих устройствах - "не работали" на каких-нибудь новых, старых или "китайских" процессорах?
0
|
|
| 03.06.2014, 07:24 | |
|
Ответы с готовыми решениями:
5
Использование библиотеки (so) в исходниках на с++ с ndk Android Studio использование NDK Использование boost::asio через NDK |
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|||
| 03.06.2014, 17:05 | |||
|
Если появились требования с которыми Java не справляется, тогда надо думать чего менять и в какую сторону двигаться. NDK и нужен-то для портов с других платформ, т.к. C++, внезапно, оказался более пригодным для кроссплатформенной разработки, чем Java
0
|
|||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
| 03.06.2014, 21:33 [ТС] | |
|
У с++ много бонусов!
1) Скорость выполенения выше раза в 2 (минимум - говорят и в 10). А значит еще и экономия батареи при низких требованиях. MoreTeapots рисует 8х8х8=512 цветных вращающихся чайников и потребляет не больше 35% проца, когда любое активити открываясь требует 90-100%. 2) Взломо-устойчивость. Код моих либ и компонент останется только моим! Сравните - копаться в дизасемблере или обфуцироваом коде явы... Да через час я уже по яве представляю как подобное было сделано. Доп-защита для программы через ключи. Защищенные протоколы с сервером. Защита файлов шифрованием. Ява даже зип не шифрует! Защитив полезную библиотеку, я защищаю весь проект. ИМХО ява - это скорее серверная технология - когда защищать сервер не обязательно(админы позаботятся), а клиент бесполезно(кроме пароля к серверу там только интерфейс) - гугл всегда шел по такому принципу. 3) Как оказалось... компиляция и тестирование сишных кодов без графики (чистая математика) НАМНОГО быстрее чем тестирование на устройстве или эмуляторе! У меня занимает 3-4 секунды компиляция простого кода на с++ в консоли с выводом результата. Против 25-35 секунд на андроиде. Возможно (не тестировал, но слышал) что ява отладка без андроида тоже быстрая(1:1). 4) Возможно показалось, но конечный файл компиляции кода у с++ меньше чем у явы. 5) Никакого сборщика мусора - Убить класс - это освободить память для другого, а не ждать когда до него доберется сборщик. А значит экономия памяти. Для дешевых устройств - это критично! У меня после перепеолнения происходит горячий рестарт. 6) Легко подключать к старым проектам. Перекинул *.o и java класс-подключение-обвертку и используй. Не нужно "подключать" в проект как библиотеки на яве. 7) Все серьезные(сложные) проекты на маркете явно написаны на с++ или имеют вставки. Почему? Ведь вряд-ли ексель подгоняя под мобилку не писали с нуля. Даже будильник нашел с игровым(с++) интерфейсом. У меня ощущение что даже если использовать наработки из винды и переписать интерфейс на с++, то он будет во много раз быстрее работать (как в iPhone) даже на слабых устройствах. МИНУС - не знаю как ведет себя на НЕ стандартных устройствах! Китайских, часах, медиаплерах, холодильниках, кофемашинах... Мечтаю написать свой формат работы с базой данных - переписать старинный проект из делфей. Чем-то напоминает SQLite по структуре, но... таблицы однотипные, но завязаны в дерево. Поддержка разных уровней шифрования на каждую таблицу. Короче... высокая скорость, высокая защита, ноу-хау структура (не должны догадаться как храниться). В свое время писал(изобретал) 3 года на Делфи. С++ знаю плохо, значит переписывать(учиться) буду еще года 1.5-2 (когда/если серьезно возьмусь)... Основа для своего языка программирования. УЖЕ могу (умею) начать писать на яве, но ЭТИ коды не должен видеть никто! Как исходники протокола скайпа! Пользоваться - пожалуста - десяток-сотня команд. Но как оно внутри работает - это мое! Но это слишком тяжелый проект для новичка!!! Нужно потренироваться на 2-5ти более простых задачах! Написать пару не слишком тяжелых либ и потестить их пол-годика на десятке устройств... Например я пишу свою либу мультитача. Пока в яве. Довольно сложную. А значит позднее (возможно) и медленную в расчетах! Довольно уникальную - в опенсорсы ее выкладывать не собираюсь... особенно случайно, приклеив ее к мелкому проекту-образцу(или на фрилансе). Можно конечно вынести отладку в отдельный проект, оформить как либу и надеятся на надежность обсфуктора... А можно зашить в *.о и больше не парится. Можно даже ограничить функционал либы наличием файла-ключа на устройстве разработчика... Переписать на с++ займет неделю-две... Но немного страшно! Убить 2 недели и получить глюки, несовместимости, критические ошибки(проект тупо закрывается при ошибке в с++, даже обработчик ошибки не вызывает)... Кто-нибудь из Вас писал на с++ что-нибудь кроме игрушек? Помню... Во времена турбо-паскаля было модно делать вставки на асемблере. Это ускоряло выполнение любой подобной процедуры в несколько раз(иногда и в 10). Код становился менее читабельным, но... кнопки нажимались быстрее, картинки быстрее отрисовывались, код быстрее считался... для медленных устройств это было полезно! У некоторых моих знакомых до сих пор тормознутый андроид2.3. А с++ их бы ускорил! А мне кажется андроид никогда не уйдет из рынка дешевых но медленных устройств - начнутся микрочипы со встроенной ос для игрушек, роутеры с ос, розетки для умного дома, женские часики с мониторчиком, брелок на ключи, смыватель для унитаза и наклейки на портфель! И быстрые алгоритмы будут нужны... Явы всегда будет не хватать...
0
|
|
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|||
| 04.06.2014, 20:03 | |||
|
Новичку эти грабли могут отбить желание собирать бонусы. Чем тебе не задание, о котором ты сам же и спрашиваешь?) На мой взгляд, теоретически и практически очень полезное, но потребует затрат ресурсов приличных. Много инструментов пригодных: генераторы парсеров, LLVM... Но настоящего программиста готовые инструменты не привлекают. Настоящий программист - это спортсмен-велосипедист. Он свои инструменты создаёт, как же иначе? ![]() Кликните здесь для просмотра всего текста
Поясню свою мысль, высказанную ранее. Речь не про (C++ vs Java). Речь про ((C++ на Android'е) vs (Java на Android'е)). Android это всего лишь ещё одна платформа для программ. Поэтому два подхода в разработке: - программа исключительно для Android'а. - кроссплатформенная программа в том числе и для Android'а. В первом случае, надо очень сильно задуматься о необходимости C++. Во втором случае, у C++ конкурентов почти нет. По игровым проектам. Например такие вещи как PowerVR SDK и Project Anarchy - кроссплатформенные решения для разработки. Есть возможность, разрабатывать и отлаживаешь всё, не касаясь андроида. Никто не запрещает самому написать свой кроссплатформенный SDK. Поэтому, чаще всего, портируют приложение на Android, а не разрабатывают на Android'е. Но это всё игрушки, там рулит C++. Да и про мультитач либу ты загнул: например, у Марио Цехнера это класс в 150 строчек. Успехов!
0
|
|||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||||
| 04.06.2014, 22:41 [ТС] | ||||
Например сложные парсеры строк с занесением результатов в таблицы (понятия не имею как это сделать на с++, но знаю как по инструкциям собрать подобное на яве и по памяти напишу на делфи).Нужно что-то простое! И НЕ игровое! И ОЧЕНЬ хочу получить положительный отзыв о технологии (применение NDK в андроиде) от того кто написал на нем что-нибудь свое (а не воспользовался готовыми либами вроде игровых движков) У меня готово 3 вида зума(в разработке еще 2) и вращения плоских фигур 1м, 2мя и 3мя пальцами, дблклик с управляемой схемой задержек(хоть морзянку отбивай), лонг клик с 5ю управляемыми длительностями удержания, прострой драг. И мне пока не приходилось полноценно использовать драг, физическое торможение-разгон фигур после отпускания, распознавать простые жесты... Потенциал большой! Проделано уйма работы по вычислениям векторов. Но стоит выложить программу где нужно использовать лишь один раз дблклик и все - исходники можно изучать и целиком использовть(обсфуктор либо не спасет, либо замедлит работу)!
0
|
||||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
| 08.06.2014, 07:30 [ТС] | |
|
Ну-же! Специалисты! Отзовитесь! Кто реально использовал NDK? И у кого NDK успешно работает? И не написание игры на чужом движке, а что-нибудь свое??? Меня НЕ интересуют Ваши тайны. Мне НЕ важны даже направления Ваших проектов. Обещаю даже не приставать с вопросами по самому NDK!
Просто сообщите насколько надежна технология NDK по Вашему мнению после ее активного применения!!! 1) Были ли глюки, которые исправлялись только заменой устройства? 2) Были ли глюки, из-за которых возвращались назад на яву или закрывали проект? Если я возьмусь за свой проект (написание скриптового языка), то этот займет не меньше года! И отнимет кучу свободного времени. Не охота через пол-года-год закрыть проект из-за его глючности или не полной совместимости... И начать переписывать его еще и на яву... Не хочу тратить СТОЛЬКО времени в пустую!
0
|
|
| 08.06.2014, 07:30 | |
|
Помогаю со студенческими работами здесь
6
Подключить стороннюю NDK-библиотеку к своему NDK-проекту AS и Ndk Android NDK NDK и SDK Android NDK Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|