рдкрд░рд┐рдЪрдп
рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ,
"рд╣рдо рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реЗ рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ" рд▓реЗрдЦ рд╣рдм рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ , рдЬрд┐рд╕рдореЗрдВ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЧрдИ рдереА (рд╡реИрд╕реЗ,
рдПрдХ рдкреБрд░рд╛рдиреА рдкреЛрд╕реНрдЯ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдмрд╛рдд рдмрддрд╛рддреА рд╣реИ)ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ (рдореИрдВрдиреЗ рдЗрд╕реЗ "рд╕реЗрдВрд╕рд░ рд▓реЙрдЧрд░" рдХрд╣рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛), рдЬреЛ рдПрдХреНрд╕реАрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ
рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░реАрдбрд┐рдВрдЧ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЗрд░рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
SensorManager
рд╕реЗрдВрд╕рд░,
SensorEventListener
рдФрд░
SensorEventListener
рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рд▓реЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рджреЛ рд▓реЗрдЦреЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджрд┐рдпрд╛, рдЬреЛ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реИрдХреНрд╖рд┐рдХ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реА рдерд╛ред рдЕрдм рддрдХ, рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ
рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рд▓реА рдЧрдИ рдереАред рд╡реЗ рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реБрдПред рдХреЗ рд▓рд┐рдП рдорд░рд╣рдо рдореЗрдВ рдПрдХ рдордХреНрдЦреА рд╣реИ:
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХрдИ рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдЬреЛ рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ред
Android рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ, рдПрдХ
рд╕реЗрд╡рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдереНрд░реЗрдб рдореЗрдВ рд╕реЗрд╡рд╛ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛рдо рдХрд░рддреА рд╣реИ) рдЬрдмрдХрд┐ рдлреЛрди рдмрдВрдж рд╣реИ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдо рд╕реЗ рдХрдо рд╣реИред рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП UI рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП) рдпрд╛ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред
рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдирд╛, рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдПрдХ рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрдирд╛
рдПрдХ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (
onStartCommand
рд╡рд┐рдзрд┐)
@SuppressLint("DefaultLocale") public class SensorLoggerService extends Service implements SensorEventListener { private SensorManager sm; private BufferedOutputStream outStream; private OutputStreamWriter sWriter; private String appDirString; private Calendar cal; private Long startTime; private String date_format = "yyyy-MM-dd_HH-mm-ss"; private Boolean first = true; @Override public int onStartCommand(Intent intent, int flags, int startId) { sm = (SensorManager) getSystemService(SENSOR_SERVICE); appDirString = intent.getStringExtra(MainActivity.APP_DIR); rec_start(); return super.onStartCommand(intent, flags, startId); } public void rec_start() { try { String filename = currentDateToString()+".txt"; File appDir = new File(appDirString); if(!appDir.exists()) appDir.mkdirs(); File file = new File(appDir, filename); outStream = new BufferedOutputStream(new FileOutputStream(file)); Toast.makeText(getApplicationContext(), appDirString+filename,Toast.LENGTH_SHORT).show(); sWriter = new OutputStreamWriter(outStream); Toast.makeText(getApplicationContext(), getString(R.string.record_started),Toast.LENGTH_SHORT).show(); sm.registerListener(this,sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), sm.SENSOR_DELAY_NORMAL); } catch (Throwable t1) { Toast.makeText(getApplicationContext(), "Exception: " + t1.toString(), Toast.LENGTH_LONG).show(); } }
рдЬрдм рд╕реЗрд╡рд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ
SensorManager
рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ (
sm
рд╡реЗрд░рд┐рдПрдмрд▓) рд╣реЛрддрд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦ рдореЗрдВ рдкрд░рд┐рдЪрдп рдореЗрдВ рдФрд░ рд╕рд╛рде рд╣реА
рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╕реЗрд╡рд╛ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (
рдЗрд░рд╛рджреЗ - рдЗрд░рд╛рджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд╛ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░реАрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрд╡рд╢реНрдпрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛ рджреЗрдЧрд╛) рдФрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЬрд┐рд╕ рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рд╕реЗ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдереАред
currentDateToString
рд╡рд┐рдзрд┐, рдЬреЛ рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддреА рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
@SuppressLint("SimpleDateFormat") public String currentDateToString() { SimpleDateFormat sdf = new SimpleDateFormat(date_format); cal = Calendar.getInstance(); return sdf.format(cal.getTime()); }
рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реЗрдВрд╕рд░ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЬрдм рдХрд┐рд╕реА рднреА рд╕реЗрдВрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
onSensorChanged
, рддреЛ
onSensorChanged
рд╡рд┐рдзрд┐ рдХреЛ
onSensorChanged
, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдИрд╡реЗрдВрдЯ рдХрд┐рд╕ рд╕реЗрдВрд╕рд░ рдкрд░ рд╣реБрдЖ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдПрдХреНрд╕реЗрд▓реЗрд░реЛрдореАрдЯрд░ рд╣реИ, рддреЛ рдЬреЛ рд░реАрдбрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЙрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХ рдирдпрд╛ рдЗрд░рд╛рджрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
sendBroadcast
рдлрд╝рдВрдХреНрд╢рди):
@Override public void onSensorChanged(SensorEvent event) { if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER) writeData(event.values); } @SuppressLint("DefaultLocale") public void writeData(float values[]) { try{ cal = Calendar.getInstance(); if(first) { startTime = cal.getTimeInMillis(); first = false; } Long currentTime = cal.getTimeInMillis()-startTime; String data = Long.toString(currentTime)+String.format(" %f %f %f\n", values[0],values[1],values[2]); sWriter.write(data); Intent intent = new Intent(MainActivity.BROADCAST_ACTION); intent.putExtra(MainActivity.VAL1, values[0]); intent.putExtra(MainActivity.VAL2, values[1]); intent.putExtra(MainActivity.VAL3, values[2]); sendBroadcast(intent); } catch (Throwable t1) { Toast.makeText(getApplicationContext(), "Exception: " + t1.toString(), Toast.LENGTH_SHORT) .show(); } }
рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ,
рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд╛рдЗрд╡рд░ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ
sendBroadcast
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреЗрдЬреЗ рдЧрдП рдЗрд░рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рд╕реЗ
rec_start
рд╡рд┐рдзрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
public final static String BROADCAST_ACTION = "SensorLoggerServiceRecieve"; public void rec_start() { Intent startServiceIntent = new Intent(this,SensorLoggerService.class) .putExtra(APP_DIR, appDirString); startService(startServiceIntent); rec=true; button_rec_off.setEnabled(true); button_rec_on.setEnabled(false); intentFlt = new IntentFilter(BROADCAST_ACTION); br = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { float val1 = intent.getFloatExtra(VAL1, 0); float val2 = intent.getFloatExtra(VAL2, 0); float val3 = intent.getFloatExtra(VAL3, 0); x_label.setText("X: "+String.valueOf(val1)); y_label.setText("Y: "+String.valueOf(val2)); z_label.setText("Z: "+String.valueOf(val3)); } }; registerReceiver(br, intentFlt); }
Button
x_label, y_label
Button
рдХреНрд▓рд╛рд╕ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ, рдФрд░
x_label, y_label
рдФрд░
z_label
рд╣реИрдВред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рд╕реЗрд╡рд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрдЗрд╡рд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЖрд╢рдп рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (
IntentFilter рд╡рд░реНрдЧ)ред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдХреЛрдб рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕реЛрд░реНрд╕ рдХреЛрдб рдФрд░ * .apk рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓рд┐рдВрдХ рдиреАрдЪреЗ рд╣реИред
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ Android рд╡рд┐рдХрд╛рд╕ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдиреЗ рдореЗрдВ рдорджрдж рдХреА:
рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ * .apk
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛