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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android ListView OnItemClickListener http://www.cyberforum.ru/android-dev/thread1328306.html
final String LOG_TAG = "myLogs"; ListView lvMain; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lvMain = (ListView) findViewById(R.id.listView);
Android EditText, как в калькуляторах Здравствуйте! Подскажите пожалуйста как настроить EditText так, чтобы при вводе текст размещался справа и автоматически сдвигался влево когда заполнится сам EditText. Заранее спасибо http://www.cyberforum.ru/android-dev/thread1328129.html
Движение геометрической фигуры Android
Прошу помочь Нужно реализовать движение по экрану геометрической фигуры в каком-либо направлении, например круга, так чтобы это было заметно, что он движется. Пробовал перерисовывать фигуру заново с другими координатами, используя задержку работы программы, но не получается это сделать в методе onDraw. Как же тогда быть?
Произвольное выпадающее меню Android
Здравствуйте, интересует изменение выпадающего меню. Каким образом можно сделать чтобы меню выпадало с верхнего левого угла полукругами как на рисунке, каждая секция это собственно кнопка?
Android Не загружается программа в эмулятор Android Studio 1.0 http://www.cyberforum.ru/android-dev/thread1327682.html
Здравствуйте! При запуске на выполнение программы в среде Android Studio 1.0 при помощи эмулятора программа не загружается в эмулятор. При этом выводится сообщение "Process system isn't responding. Do you want to close it?". Файл MainActivity.java самый простой, впервые созданный программой автоматически, как новый проект. Пробовал создавать различные AVD с различными параметрами, не...
Android Notifications и открытие Activity по щелчку Из сервиса запускается иконка Notifications. Требуется, чтобы если программа свернута, то при щелчке по значку открывалась текущая на данный момент активити. Как это реализовать? Пока что у меня при щелчке по уведомлению оно вообще исчезает. Intent notificationIntent = new Intent(MainActivity.context, service.class); PendingIntent contentIntent =... подробнее

Показать сообщение отдельно
Fulcrum_013
657 / 725 / 72
Регистрация: 14.12.2014
Сообщений: 5,650
Завершенные тесты: 3
14.12.2014, 17:01     Можно ли написать приложение для Андроид на С# или С++? И если да, то на чем лучше писать?
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
void inline Inverse(TMatrixData& R, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = -m1[i][j];
}
 
 
void inline Transpose(TMatrixData& R, TMatrixData& m1) {
    if (R!=m1){
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j];
    }else{
       for (int i = 0; i < MatrixSize; i++)
        for (int j = i; j < MatrixSize; j++)
            R[i][j] = m1[i][j];
    }
}
 
void inline Identity(TMatrixData& R, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = i == j;
}
 
 
void inline Mul(TMatrixData& R, TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++) {
            R[i][j] = 0;
            for (int k = 0; k < MatrixSize; k++)
                R[i][j] += m1[i][k] * m2[k][j];
        }
}
 
void inline Add(TMatrixData& R, TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] + m2[i][j];
}
 
void inline Sub(TMatrixData& R, TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] - m2[i][j];
}
bool inline Equal(TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            if (m1[i][j] != m2[i][j]) return false;
    return true;
}
bool inline NotEqual(TMatrixData& m1, TMatrixData& m2) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            if (m1[i][j] != m2[i][j]) return true;
    return false;
}
 
void inline Mul(TMatrixData& R, float s, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] * s;
}
void inline Div(TMatrixData& R, float s, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++)
            R[i][j] = m1[i][j] / s;
}
void inline Mul(TVectorData& R, TVectorData& v1, TMatrixData& m1) {
    for (int i = 0; i < MatrixSize; i++) {
        R.D[i] = 0;
        for (int j = 0; j < MatrixSize; j++)
            R.D[i] += v1.D[j] * m1[j][i];
    }
}
float inline Abs(TMatrixData& m1)
{
    scalar R;
    for (int i = 0; i < MatrixSize; i++) {
        float pp = 1;
        float pn = 1;
        for (int j = 0; j < MatrixSize; j++) {
            int k = i + j;
            k = k < MatrixSize ? k : k - MatrixSize;
            pp *= m1[i][k];
            int n = i - j;
            n = n < 0 ? MatrixSize - 1 + n : n;
            pn *= m1[i][n];
        }
        R += pp - pn;
    }
    return R;
}
float inline Dot(TVectorData& v1, TVectorData& v2){
    return v1.x * v2.x+v1.y * v2.y+v1.z * v2.z;
}
float inline Hatch(TVectorData& v1, TVectorData& v2) {;
    return v1.x * v2.y - v1.y * v2.x;
}
float inline Pow2(TVectorData& v1){
    return  v1.x * v1.x+v1.y * v1.y+v1.z * v1.z;
}
float inline Abs(TVectorData& v1){
    return sqrt(v1.x * v1.x+v1.y * v1.y+v1.z * v1.z);
}
 
void inline Mul(TVectorData& R, float s, TVectorData& v1) {
        R.x = v1.x*s; R.y = v1.y*s; R.z = v1.z*s;
}
 
void inline Div(TVectorData& R, float s, TVectorData& v1) {
        R.x = v1.x/s; R.y = v1.y/s; R.z = v1.z/s;
}
 
void inline Inverse(TVectorData& R, TVectorData& v1) {
    for (int i = 0; i < DimensionCount; i++)
        R.D[i] = -v1.D[i];
}
void inline Norm(TVectorData& R, TVectorData& v1) {
    float A = Abs(v1);
    R.x = v1.x / A; R.y = v1.y / A; R.z = v1.z / A; R.w = v1.w / A;
}
void inline WNorm(TVectorData& R, TVectorData v1) {
    if (fabs(v1.w)<1e-15) return;
    R.x = v1.x / v1.w; R.y = v1.y / v1.w; R.z = v1.z / v1.w; R.w = 1;
}
void inline Add(TVectorData& R, TVectorData& v1, TVectorData& v2) {
    R.x = v1.x + v2.x;R.y = v1.y + v2.y;R.z = v1.z + v2.z;
}
void inline Sub(TVectorData& R, TVectorData& v1, TVectorData& v2) {
    R.x = v1.x - v2.x;R.y = v1.y - v2.y;R.z = v1.z - v2.z;
}
void inline Cross(TVectorData& R, TVectorData& v1, TVectorData& v2) {
    R.x = v1.y * v2.z - v1.z * v2.y;
    R.y = v1.z * v2.x - v1.x * v2.z;
    R.z = v1.x * v2.y - v1.y * v2.x;
}
scalar inline Angle(TVectorData& v1, TVectorData& v2) {
       return acos((Dot(v1,v2)/sqrt(Pow2(v1)*Pow2(v2))));}
bool inline Equal(TVectorData v1, TVectorData v2) {
       return v1.x==v2.x&&v1.y==v2.y&&v1.z==v2.z&&v1.w==v2.w;
}
bool inline NotEqual(TVectorData& v1, TVectorData& v2){
     return v1.x!=v2.x||v1.y!=v2.y||v1.z!=v2.z&&v1.w!=v2.w;
}
 
TVector inline __fastcall operator-(TVector &a1, TVector &a2){TVector rt;Sub(rt.D, a1.D, a2.D);return rt;}
TVector inline __fastcall operator +(TVector &a1, TVector &a2){TVector rt;Add(rt.D, a1.D, a2.D);return rt;}
TVector inline __fastcall operator*(TVector &a1, TVector &a2){TVector rt;Cross(rt.D, a1.D, a2.D);return rt;}
TVector inline __fastcall operator /(TVector v1, scalar v2){TVector rt; Div(rt.D, v2, v1.D);return rt;}
TVector inline __fastcall operator*(scalar  v1,TVector &v2){TVector rt; Div(rt.D, v1, v2.D);return rt;}
TVector inline __fastcall operator*(TVector &v1, scalar v2){TVector rt; Mul(rt.D, v2, v1.D);return rt;}
 
 
__fastcall TVector::TVector(){D.x = 0.f;D.y=0.f;D.z=0.f;D.w = 1.f;};
__fastcall TVector::TVector(scalar ax, scalar ay, scalar az = 0){D.x=ax;D.y=ay;D.z=az;D.w = 1;};
__fastcall TVector::TVector(const TVector& V){D.x=V.x;D.y=V.y;D.z=V.z;D.w=V.w;};
float __fastcall TVector::Abs(){return ::Abs(D);};
inline TVector& __fastcall TVector::Normalize(){Norm(D, D);return *this;};
inline TVector& __fastcall TVector::WNormalize(){WNorm(D, D);return *this;};
inline TVector  __fastcall TVector::Normalized(){TVector r;Norm(r.D, D);return r;};
inline TVector  __fastcall TVector::WNormalized(){TVector r;WNorm(r.D, D); return r;};
inline TVector& __fastcall TVector::Inverse(){::Inverse(D, D); return *this;};
inline TVector& __fastcall TVector:: operator=(TVector V){D.x=V.x;D.y=V.y;D.z=V.z;D.w=V.w;return *this;}
inline TVector  __fastcall TVector::operator-(){TVector r;::Inverse(r.D,D);return r;}
 
inline float __fastcall TVector::operator~(){return Abs();}
 
inline TVector& __fastcall TVector::operator+=(TVector& v){Add(D,D,v.D); return *this;}
inline TVector& __fastcall TVector::operator-=(TVector& v){Sub(D,D,v.D);return *this;};
inline TVector& __fastcall TVector::operator*=(TVector& v){Cross(D,D,v.D);return *this;};
 
inline scalar __fastcall TVector::operator%(TVector& v){return Dot(D,v.D);};
inline scalar __fastcall TVector::operator/(TVector& v){return Hatch(D,v.D);};
inline scalar __fastcall TVector::operator^(TVector& v){return Angle(D,v.D);};
inline bool   __fastcall TVector::operator==(TVector& v){return Equal(D,v.D);};
inline bool   __fastcall TVector::operator!=(TVector& v){return NotEqual(D,v.D);};
 
inline TVector& __fastcall TVector::operator *= (scalar s){Mul(D,s,D);return *this;};
inline TVector& __fastcall TVector::operator /= (scalar s){Div(D,s,D);return *this;};
/*inline TVector& __fastcall TVector::operator += (scalar v);
inline TVector& __fastcall TVector::operator -= (scalar v);*/
 
 
inline TVector __fastcall operator * (TMatrix& m,TVector& v){TVector r; Mul(r.D,v.D,m.D); return r;}
inline TVector __fastcall operator * (TVector& v,TMatrix& m){
       TVector r;
       Mul(r.D,v.D,m.D);
       return r;
}
 
inline TMatrix __fastcall operator * (TMatrix& m1,TMatrix& m2){TMatrix r; Mul(r.D,m1.D,m2.D); return r;}
 
__fastcall TMatrix::TMatrix(){memset(D, 0, sizeof(TVectorData));}
__fastcall TMatrix::TMatrix(const TMatrix& m){memcpy(D,m.D,sizeof(TMatrixData));};
inline TMatrix& __fastcall TMatrix::Identity(){::Identity(D, D);return *this;};
inline TMatrix& __fastcall TMatrix::Transpose(){::Transpose(D, D);return *this;};
inline TMatrix& __fastcall TMatrix::operator =  (const TMatrix& m){memcpy(D, m.D, sizeof(TMatrixData));return *this;};
inline bool     __fastcall TMatrix::operator == (TMatrix& m){return Equal(D, m.D);};
inline bool     __fastcall TMatrix::operator != (TMatrix& m){return !Equal(D, m.D);};
inline TMatrix& __fastcall TMatrix::operator *= (float v){Mul(D, v, D);return *this;}
inline TMatrix& __fastcall TMatrix::operator /= (float v){Div(D, v, D);return *this;}
inline TMatrix& __fastcall TMatrix::operator *= (TMatrix& m){Mul(D, D, m.D);return *this;}
inline TMatrix& __fastcall TMatrix::operator += (TMatrix& m){Add(D, D, m.D);return *this;}
inline TMatrix& __fastcall TMatrix::operator -= (TMatrix& m){Sub(D, D, m.D);return *this;}
inline float __fastcall TMatrix::operator ~ (){return ::Abs(D);}

отакой изврат на яве похоже точно нельзя творить

Добавлено через 38 минут
Цитата Сообщение от Zuzik Посмотреть сообщение
Знания языка тоже немаловажная вещь в этой области
Ага. Зная к примеру асм x86 берешь просто табличку комманд от любого проца и вперед. Тут то же самое. Синтаксис Java и С++ отличается минимально, ну а библиотеки что там что там одни и те же. В любом случае при использовании любой библиотеки будешь постоянно по хелпам рыться сколько б лет ее не использовал. Ну и в Android SDK то ли где то на ихнем Developer network с год назад видел топик о том что хоть скорость выполнения прикладного C++ софта таки догнала Java, но разрабы андроида не рекомендуют использовать С++ для тех задач которые решаемы на Java.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru