рджреЛрд╕реНрддреЛрдВ SQLite android рдХреЛ рдЗрдВрдЧреНрд▓рд┐рд╢ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдХреИрд╕реЗ рдмрдирд╛рдпреЗ


рдирдорд╕реНрдХрд╛рд░ рдкреНрд░рд┐рдп рдкрд╛рдардХ!
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ SQLite рдореЗрдВ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, Android NDK рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдЕрджреНрднреБрдд рдЬреАрд╡рди рдЬреАрддрд╛ рд╣реВрдВ! рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рд╕реЗ, рдореИрдВ рдкрд╣рд▓реЗ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирддрд╛ рд╣реВрдВред рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ

рдПрдХ рдЬрд╛рдиреА-рдорд╛рдиреА SQLite рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд▓реИрдЯрд┐рди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ [1] :
SELECT "" LIKE "";
0
SELECT "s" LIKE "S";
1


рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рдорд╛рд░реЗ рдЕрдХреНрд╖рд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреИрд╕рд╛рдЦреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред


Android NDK


рдЕрдкрдиреЗ рдХреНрд╖рд┐рддрд┐рдЬ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдп рдкрд╛рдардХ, рд╕рд╛рде рд╣реА рдЙрдкрдпреБрдХреНрдд рдмреИрд╕рд╛рдЦреА рдмрдирд╛рдПрдВ, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдирдбреАрдХреЗ [2] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдПрдХ рд╕реБрд▓рдн рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ)

рдереЛрдбрд╝рд╛ рдЙрдмрд╛рдК

Android NDK Android рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдореВрд▓ рдХреЛрдб рдореЗрдВ C / C ++ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХреБрдЫ рдЧрд╣рди рдЦрдВрдбреЛрдВ рдХреЛ C / C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
NDK Android 1.5 рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдФрд░ рдирд┐рдореНрди ARMv5TE рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ (Thumb-1 рдирд┐рд░реНрджреЗрд╢ рд╕рд╣рд┐рдд), ARMv7-A (Thumb-2 рдФрд░ VFPv3-D16 рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕рд╣рд┐рдд, NEON / VVv33-D32 рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде) рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
рднрд╡рд┐рд╖реНрдп рдХреА рд░рд┐рд▓реАрдЬрд╝ x86 рд╕рдорд░реНрдерди рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддреА рд╣реИ

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╣рдо рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ!

рдЗрд╕рд▓рд┐рдП ...


рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? рд╣рдо рд╕реЛрд░реНрд╕ рдХреЛрдб sqlite рдФрд░ icu рдХреЛ рдорд┐рд▓рд╛рдПрдВрдЧреЗред
рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмреЛрдЭ рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдареЗ рдХрд┐рдЯ рдХреЛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ [3] ред рдЕрдЧрд░ рдЧрд▓рддреА рд╕реЗ рдХреЛрдИ рдЪреАрдЬ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдП рддреЛ рдореИрдВ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред
рдпрджрд┐ рдЖрдк рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣рд╛рдВ рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ [7] , рдФрд░ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ

рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдирдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдХреАрдорддреА рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░рдЦреЗрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ / рдЬрд╛рдиреА
рдЗрд╕рдХреЗ рдмрд╛рдж рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╣рд╛рдВ рд╣реИ - рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рддрдХ рдкреВрд░рд╛ рд╣реЛрдиреЗ рджреЗрдВ

рд╕рдВрдХрд▓рди рдХрджрдо рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреБрдЫ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЖрдо / Android.mk

рдпрд╣ рд╕рднреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рд╡рд┐рднрд┐рдиреНрди рдЭрдВрдбреЗ рдФрд░ рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ

рд╕рд╛рдорд╛рдиреНрдп / android_sqlite ...

рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рддрд░рд╣ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЬрд╛рд╡рд╛ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред
рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
 void Java_biz_sneg_sqlite_SQLiteDatabase_closedb() 

рдореВрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ Java____ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдореИрдВрдиреЗ рднреМрдЧреЛрд▓рд┐рдХ рджреВрд░реА (X1, y1, x2, y2) рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GEODISTANCE рдлрд╝рдВрдХреНрд╢рди рдХреЛ рднреА рдЪрд╛рд▓реВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ред
рдЕрдм рдЕрдкрдиреЗ рд╡рд╛рдВрдЫрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдкрд╛рдк рд╣реЛ, рдХреЙрд╕ рдпрд╛ рдЖрдкрдХрд╛ рд╡рд┐рджреЗрд╢реА рд╣реЛ

рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдЪрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдереЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░ рдХрд░реЛ! рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди Cygwin [6] рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП Devel рд╕рдВрдХреБрд▓ рдЪреБрдиреЗрдВред рдФрд░ ... рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕реЛрдиреЗ рдпрд╛ рдЕрдиреНрдп рд╕реБрдЦрдж рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдЯрд╛рдпрд░ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╛рд░рдХреАрдп рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢рд╛рдпрдж рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдЧрд▓рдд рд╕рд░реНрд╡рд░ рдХреЛ рдЪреБрдирд╛ред
рджреЛ рджреЛ! Cygwin рдХрдВрд╕реЛрд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рдЕрдиреНрдп OS рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрдВрд╕реЛрд▓) рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ:
Windows:
$ cd /cygdrive/project/jni
Non-windows:
$ cd project/jni

рддреАрди рдХрд░реЛ! рдПрдирдбреАрдХреЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
Windows:
$ /cygdrive/ndk-path/ndk-build
Non-windows:
$ ndk-path/ndk-build


рдЬрд╣рд╛рдБ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдкрде рд╣реИ, рд╡рд╣реАрдВ ndk-path рд╡рд╣ рдорд╛рд░реНрдЧ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдиреЗ NDK рдХреЛ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдерд╛
рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
...
Compile++ thumb : android_sqlite <= tmutfmt.cpp
Compile++ thumb : android_sqlite <= colldata.cpp
Compile++ thumb : android_sqlite <= bmsearch.cpp
Compile++ thumb : android_sqlite <= bms.cpp
Compile++ thumb : android_sqlite <= currpinf.cpp
Compile++ thumb : android_sqlite <= uspoof.cpp
Compile++ thumb : android_sqlite <= uspoof_impl.cpp
...

рдпрджрд┐ рдпрд╣ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ O_o рдХреЗ рд╕рд╛рде рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд╣реИ

рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдкрде рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рд▓рд┐рдмрд╛рд╕ / рдЖрд░реНрдореЗрдмреА / рд▓рд┐рд╡рд╛рдВрдбреНрд░реЙрдЗрдб_рд╕рдХреНрд╡рд┐рдЯрд╛рдЗрдЯреНрд╕ред рдПрд╕реЛ рдХреЗ рд╕рд╛рде

рдЕрдм рд╣рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
 public class MainActivity extends TabActivity { static { System.loadLibrary("android_sqlite"); } ... } 


рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдЙрд╕ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ [4]

рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ?


рдХреИрд╕реЗ, рдХреИрд╕реЗ, рдмреИрда рдЧрдпрд╛ рдФрд░ рдЪрд▓рд╛ рдЧрдпрд╛!
рд╣рдо рдЖрдзрд╛рд░ рдЦреЛрд▓рддреЗ рд╣реИрдВ
 try { dataBase_ = new biz.sneg.sqlite.SQLiteDatabase(DB_NAME); } catch (Exception e) { Log.wtf("Database", e); } 


рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ, рдпрд╛ рдЬреИрд╕рд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ
 try { biz.sneg.sqlite.SQLiteCursor cursor = dataBase_.query("SELECT * FROM tablename WHERE rus_text_field LIKE ?", new Object[]{"%"}); List<Map<String, String>> results = new ArrayList<Map<String,String>>(); while (cursor.next()) { final int columnCount = cursor.count(); HashMap<String, String> currentMap; currentMap = new HashMap<String, String>(); for (int i = 0; i < columnCount; i++) { currentMap.put(cursor.columnName(i), cursor.stringValue(i)); } results.add(currentMap); } cursor.dispose(); } catch (Exception e) { Log.wtf("Database", e); } 


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдЖрдкрдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрддрд╛ рд╣реВрдВ!

рд╡рд┐рдЪрд╛рд░ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдирд┐рдХреЛрд▓реЗ рдХреБрджрд╛рд╢реЛрд╡ рдХреЗ рд▓реЗрдЦрдХ, рдЖрдордВрддреНрд░рд┐рдд рдХреЛ рдпрд╣рд╛рдВ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ drklo.2kb <famous_symbol> gmail.com

рд╕рдВрджрд░реНрдн:
1. SQLite рдФрд░ рдкреВрд░реНрдг UNICODE
2. Android NDK
3. рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд
4. рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд
5. SQLite
6. рд╕рд╛рдЗрдЧрд╡рд┐рди
7. рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп

Source: https://habr.com/ru/post/In122408/


All Articles