Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.64
Carpe-diem
1 / 1 / 0
Регистрация: 11.10.2014
Сообщений: 57
#1

Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? - Программирование Android

13.12.2014, 05:27. Просмотров 4667. Ответов 92
Метки нет (Все метки)

Нужно написать приложение-справочник,
предполагается ,что информация хранится в базе данных.

Можно ли написать такое приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2014, 05:27     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Посмотрите здесь:
Какое приложение можно написать для диплома по ос Андроид? Android
Android Можно ли сделать на андроид приложение с активностью не во весь экран, а вроде окна на винде?
Android Переделать приложение для Андроид в приложение для ПК
Android Можно ли претендовать на должность Java программиста, если знать только яву под андроид?
Embarcadero - Мобильное приложение для Андроид Android
Приложение для группы Vk под Андроид Android
Android Как сделать андроид приложение для сайта?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ojgen
1 / 1 / 0
Регистрация: 29.06.2014
Сообщений: 11
20.12.2014, 23:30     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #41
Написать то можно. )
Один из вариантов для c# - xamarin. Но, придется заплатить ~ 25$/мес за лицензию, или довольствоваться бесплатной, ограниченной, версией.

На счет c++, думаю, проще по быстрому ознакомится с java - скорее напишите. Но это мое личное мнение )
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.12.2014, 01:17     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #42
Цитата Сообщение от taras atavin Посмотреть сообщение
И что такого удобного для примитивнейшего цикла сначала в другом цикле создать коллекцию?
Удобно для итерации по массивам. Особенно когда заполняется он в одном месте а просматриваться потом может во многих. хотя я ж говорил-особых неудобств не доставляет, чуть чуть больше кода.
Цитата Сообщение от taras atavin Посмотреть сообщение
Нет: за закрывающей скобкой без оператора следует идентификатор.
Есть такая штука в С++ - препроцессор называется... там просто подряд несколько вызовов макросов препроцессора, при вызове которого тоже скобки используются.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
21.12.2014, 02:22     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #43
Цитата Сообщение от taras atavin Посмотреть сообщение
И что такого удобного для примитивнейшего цикла сначала в другом цикле создать коллекцию?
Опять фразы из раздела "война языков"...
Не надо сравнивать с++ и яву! они для разных целей! Я уже почти пол года учу с++ (ради NDK) и задал ОЧЕНЬ много вопросов СИшникам. Похоже у них ОЧЕНЬ большая параноя по излишней загруженности процессора! Ява - изначально "тормознутая". Поэтому такой вопрос здесь не особо возникает - лишь бы заработало - остальное "проблемы проца"... Даже в андроиде вопрос о производительности и экономиях каждого цикла и байта не возникает! У Сишников слышал такие фразы: это же целый лишний цикл система делает (в 100 проходов). Это же по 3 байта на каждом элементе (из 1000) теряем. Целых 3 вида динамических списка ради экономии на разных видах работ (добавляет быстро, ищет медленно, перебирать тяжело VS добавляет медленно, оптимизирован поиск)
Ява сильно сделана для удобства кодера! Сам подобным циклом не пользуюсь. Предпочитаю матрицу пробегать от первого элемента до длины-1, чем поручать "по всем". Но это дело привычки и доверия.
С++ остался популярен лишь на линукс серверах, драйверах/кодеках и на "встраиваемых чипах". А это накладывает на язык явные "скоростные" ограничения и требует оптимизаций, которые в "окошках" не нужны. Ява (даже под винду) изначально жрет много ресурсов на саму ява-машину. Поэтому подобные ограничения не прививаются разработчикам - "лишь бы заработало правильно" и "побыстрее бы сделать и перейти к следующему проекту".

Но не стоит скатываться в войну языков... Думаю мы достаточно подробно обьяснили автору вопроса!

Цитата Сообщение от Carpe-diem Посмотреть сообщение
Можно ли написать такое приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Можно, но не стоит!
На С++ работы много. Раза в 2-3 больше чем на яве. Куча извращений и возможных глюков. Интерфейс сделан на яве, а значит либо писать свой либо писать "симбиоз".
На C# можно, но для узкоспециализированных проектов на платных недоязыках. Много ограничений. Безглючность гарантирует только автор "движка". Специалистов мало (здесь).
Советую на яве! Минимальный срок обучения - месяц при полной выкладке! Как говорят - возможен "карьерный рост" .

Еще скажу, что работа с базой в андроиде... Под это ИЗНАЧАЛЬНО заточены механизмы явы под андроид. Под С++ прийдется почти с нуля. Под C# надо уточнять...
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.12.2014, 02:41     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #44
Цитата Сообщение от Tester64 Посмотреть сообщение
Предпочитаю матрицу пробегать от первого элемента до длины-1, чем поручать "по всем". Но это дело привычки и доверия.
Сам так по началу на PHP делал. Потом привык к foreach(). Но как не WEB-скрипт, а desctop то Builder и соответствеено чуствуется нехватка привычного foreach. к удобному привыкаешь быстро. Но естественно что в С++ такой итератор как мининмум не логично реализовывать, разве что частично для списков имееющих к примеру свойство Count и Items средствами препроцессора:
C++
1
#define foreach(Name,as,Type) for(int i=0;i<Name->Count;i++) {Type as=(Type)Name->Items[i];
Добавлено через 8 минут
Цитата Сообщение от Tester64 Посмотреть сообщение
Даже в андроиде вопрос о производительности и экономиях каждого цикла и байта не возникает!
Во многом согласен. Когда у меня комп был той же мощности что сейчас телефон, операционкой была Windows-2000. Другое дело сколько циклов сверху этого цикла и байта. к примеру если отрисовывать 100 линий без отсечения по окну DDA алгоритмом то и i3 3,3 ГГц тормозить начинает.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
21.12.2014, 09:22     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #45
В С++ уже есть foreach

C++
1
2
3
4
5
std::vector<some_type> myvec;
...
for (auto &some : myvec) {
...
}
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.12.2014, 09:50     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #46
Цитата Сообщение от Kastaneda Посмотреть сообщение
В С++ уже есть foreach
а с таким
он работать будет?
C++
1
     void *Data=new byte[DataSize*Width*Height];
т.е. перебирать приведенное потом к какому либо другому типу? ну например
C++
1
2
3
4
     TDateStructure *Ptr=(TDateStructure*)Data;
for (auto &some : Ptr) {
...
}
Насколько понимаю так работать не будет?
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 226
Регистрация: 12.12.2009
Сообщений: 7,222
Записей в блоге: 1
Завершенные тесты: 1
21.12.2014, 10:07     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #47
Так не будет, да. С некоторым допиливанием можно заставить это работать, но проще использовать обычный for в этом случае.
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.12.2014, 12:12     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #48
Цитата Сообщение от Kastaneda Посмотреть сообщение
Так не будет, да.
И сто лет не надо. Как уже писал выше такое просто нелогично, потому что количество итераций все равно явно указывается, а соответственно от выхода за границы буфера не защитит.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.12.2014, 13:32     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #49
А каким боком контроль границ к фоичу? Границы отлично контролируются во второй позиции обычного for вне какой либо связи с количеством иттераций:
C++
1
for (p=Start; p!=NULL; p=p->Next)
.
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
21.12.2014, 14:05     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #50
Цитата Сообщение от taras atavin Посмотреть сообщение
Границы отлично контролируются во второй позиции обычного for вне какой либо связи с количеством иттераций:
Это если список указателей перебираешь. А если просто динамически распределенный массив?
Кстати можно и так:
C++
1
for (p=Start; p; p=p->Next)
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.12.2014, 14:29     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #51
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Это если список указателей перебираешь. А если просто динамически распределенный массив?
В массиве в каждый момент известны количество элементов и диапазон адресов. Что опасного:
C++
1
for (i=0; i<Count; ++i)
, или:
C++
1
for (p=Data, e=Data+Count-1; p<=e; ++p)
?
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
22.12.2014, 06:30     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #52
Цитата Сообщение от taras atavin Посмотреть сообщение
А каким боком контроль границ к фоичу
То его тезка из PHP

Добавлено через 15 часов 34 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
В массиве в каждый момент известны количество элементов и диапазон адресов. Что опасного:
ничего. Только в С++ этот Count самому приходится помнить. а в языках которые на виртуальном проце исполняются его среда выполнения помнит, соответсвенно там foreach - прямой аналог for (i=0; i<Count; ++i), только с укороченной запись.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.12.2014, 07:04     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #53
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Только в С++ этот Count самому приходится помнить. а в языках которые на виртуальном проце исполняются его среда выполнения помнит, соответсвенно там foreach - прямой аналог for (i=0; i<Count; ++i), только с укороченной запись.
Тоже мне проблема, тем более что сама прога помнит Count в любом случае. Зато не надо городить коллекцию для
C++
1
2
3
4
for (i=1; i<=10; ++i)
{
 std::cout<<i;
}
, да и циклы с произвольного элемента до конца и с первого до предпоследнего не требуют сотворения специальных вспомогательных контейнерных сущностей:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (i=0, l=Cont-2; i<=l; ++i)
{
 for (j=i+1; j<Count; ++j)
 {
  if (a[i]>a[j])
  {
   t=a[i];
   a[i]=a[j];
   a[j]=t;
  }
 }
}
.

Добавлено через 13 минут
Count же кроме собственно циклов нужен для того, чтоб при присваивании значения элементу с конкретно заданным индексом решить, надо ли увеличивать массив. Всякое присваивание за границу массива увеличивает его? Эйси. А может именно эта функция увеличивать не должна, а получив заграничный индекс должна выдать код ошибки, или исключение, или не делать ничего, кроме проверки индекса? Так что это проблему не решает. А сохранить в массив в файл? При чтении будешь еоф искать? Так за массивом может понадобиться сохранить ещё что нибудь. Может массивов в файле несколько? Или массив вообще многомерен? Как при загрузке массива с диска восстановить правильные размеры массива, если прога на момент сохранения сама их не знала? Считать в фоиче и писать в конце писать? Во-первых не удобно, во-вторых размеры будут приняты за элементы, а в-третьих к моменту их чтения массив будет уже прочитан и его надо будет переделывать. Так что сама прога в любом случае обязана помнить все свои каунты.

Добавлено через 2 минуты
Пузырёк здесь - только пример, такие циклы юзаются не только для сортировки. Например, в центральной разнице нужен цикл со второго до предпоследнего.

Добавлено через 10 минут
А вот циклы с первого до предпоследнего и со следующего до последнего без связи с количеством:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for (p1=Start; p1->Next!=NULL; p1=p1->Next)
{
 for (p2=p1->Next; p2!=NULL; p2=p2->Next)
 {
  if (p1->Data>p2->Data)
  {
   t1=p1->Previous;
   t2=p1->Next;
   p1->Previous->Next=p2;
   p1->Next->Previous=p2;
   p2->Previous->Next=p2;
   p2->Next->Previous=p2;
   p1->Previous=p2->Previous;
   p1->Next=p2->Next;
   p2->Previous=t1;
   p2->Next=t2;
  }
 }
}
.
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
22.12.2014, 07:34     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #54
Цитата Сообщение от taras atavin Посмотреть сообщение
Тоже мне проблема, тем более что сама прога помнит Count в любом случае
пока программист помнит где это помнит программа У С++ и PHP задачи разные в большинстве случаев.
Цитата Сообщение от taras atavin Посмотреть сообщение
А сохранить в массив в файл? При чтении будешь еоф искать? Так за массивом может понадобиться сохранить ещё что нибудь. Может массивов в файле несколько?
в большинстве случаев в PHP массив вот так сохраняется (и не только массив)
PHP
1
file_putcontents($filename,serialize($Data));
хотя если надо то можно и размер массива посмотреть
PHP
1
array_count($Data);
ну а о присавивании за границы массива, то очень часто использую
PHP
1
$Data[]=//вычисление данных
потом потребитель данных foreach перебирает.

Добавлено через 7 минут
Да кстати, химию на конвертер считать ассоциативные массивы очень пригодятся. Правда в сишной версии, и желательно через константы. А то и создать классы под каждое соединение и переопределить для них операторы.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.12.2014, 08:40     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #55
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
в большинстве случаев в PHP массив вот так сохраняется (и не только массив)
Код PHP
1
file_putcontents($filename,serialize($Data));
И в какой формат этот serialize насериализует? Читать ведь может локальное приложение, написанное на любом другом языке, значит фактический формат должен соответствовать спецификации, а она может быть чужая и предусматривать сохранение каунтов чёрт знает где, а потом в других местах офсеты самих массивов и уже по этим офсетам непосредственно данные. Так что в топку этот неуправляемый serialize.

Добавлено через 5 минут
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
пока программист помнит где это помнит программа
1. А чего там помнить? В декларации членов класса описаны и прокоментированы не только каунты, но и всё остальное. Сколько каунтов может быть даже в многомерном массиве? 3? 4? 11? Ну и прикиньте, сколько весит массив, у которого хотя бы по десятке каждый каунт. Так что много их быть не может. А чаще всего 1-2 на весь класс динамического массива.
2. Если "программист" умудряется забыть, куда он чего положил, то ни какая среда ему не поможет, так как он забудет и где у него сами данные. Причём, гораздо раньше.

Добавлено через 3 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
хотя если надо то можно и размер массива посмотреть
array_count($Data);
1. Сколько занимает обращение к функции, а сколько доступ к переменной?
2. Как раз array_count забыть проще всего. А в результате переврать в ArrayCount($Data), CountArray($Data), ___CountArray($Data), ___ArrayCount($Data) и даже Length($Data).
3. И как она дружит с многомерными массивами?
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
22.12.2014, 08:40     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #56
Цитата Сообщение от taras atavin Посмотреть сообщение
фактический формат должен соответствовать спецификации, а она может быть чужая и предусматривать сохранение каунтов чёрт знает где, а потом в других местах офсеты самих массивов и уже по этим офсетам непосредственно данные. Так что в топку этот неуправляемый serialize
Он там сам для себя сделан. Для хранения данных сессии. кстати формат текстовый с типами длинами и скопами. Пожиратель процессорного времени и места на диске по большому счету. Но для небольших объемов самое то. А если с другими приладами то прийдется утрясать спецификации. Делал на PHP как то кодек анимированного GIF. ниче. те же функции чтения/записи в файл как и в С++, а функции определения размеров массивов есть.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.12.2014, 08:42     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #57
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
ну а о присавивании за границы массива, то очень часто использую
PHP
1
$Data[]
=//вычисление данных[/PHP]потом потребитель данных foreach перебирает.
Ога. Без помощи циклов и таская за собой все элементы ради присваивания одного. Не смешно.
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
22.12.2014, 08:45     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #58
Цитата Сообщение от taras atavin Посмотреть сообщение
2. Если "программист" умудряется забыть, куда он чего положил, то ни какая среда ему не поможет, так как он забудет и где у него сами данные. Причём, гораздо раньше.
программистов там мало, гораздо больше разработчиков. Специфика такая. запрос сшил-в БД отправил-данные в шаблон выплюнул. больше редко когда чего надо.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.12.2014, 08:50     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #59
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Он там сам для себя сделан. Для хранения данных сессии.
А при чём здесь сессии? Сохранение файлов должно быть гибким, простым и универсальным и предназначено в первую очередь для обмена данными с другими программами, а только во вторую на случай сохранения перед выключением компа данных длительного хранения.

Добавлено через 3 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
кстати формат текстовый с типами длинами и скопами.
В первую очередь надо поддерживать двоичные форматы. Тем более при сохранении массивов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2014, 08:50     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Еще ссылки по теме:
Android На чем писать сервер для клиент на Андроиде
Андроид приложение для интернет магазина на движке Magento Android
Android Андроид-приложение для интернет-магазина. С чего начать?
Кто чем пользуется для разработки приложений под Андроид? Android
Приложение на андроид для поиска вакансий по Белоруссии. С чего начать? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Fulcrum_013
661 / 729 / 72
Регистрация: 14.12.2014
Сообщений: 5,698
Завершенные тесты: 3
22.12.2014, 08:50     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать? #60
А вот в таких случаях очень удобно
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        function Draw(){
                 $Source=get_object_vars($this);
                 preg_match_all('/({)(\w+)(})/',$Template,$Matches);
                 foreach ($Matches[2] as $Match){
                          $Value='';
                          if (array_key_exists($Match,$Source)){
                              if (is_object($Source[$Match])) $Value=$Source[$Match]->Paint();
                              else $Value=$Source[$Match];
                           }
                           $Values[$Match]=$Value;
 
                 }
                 return str_replace($Matches[0],$Values,$Template);
        }
Yandex
Объявления
22.12.2014, 08:50     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru