рдкрд░рд┐рдЪрдп

рдпрд╣ рд▓реЗрдЦ рдЙрдмрдВрдЯреВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд╛рдпрдерди рдореЗрдВ рдПрдлрд╝рдЯреАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрд╕рдПрд▓ 4 рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред SL4A рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдирд╛, рдмрд╛рд░рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ .apk рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХрд░рдирд╛ред
SL4A рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж
SL4A рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд▓реЗрдпрд░), рдЬреЛ рдбреЗрдорди рдХреЛрд╣рд▓рд░ рдХреЗ рд▓рд┐рдП рдкреИрджрд╛ рд╣реБрдЖ рдерд╛ рдФрд░ Google рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП
20% рдЦрд╛рд▓реА рд╕рдордп рдХреЗ рд▓рд┐рдП , рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд╛рдпрдерди, рдкрд░реНрд▓,) рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред JRuby, Lua, BeanShell, JavaScript, Tcl, рдФрд░ Shell)ред
рдПрдХ рд╣рдм рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SL4A рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣ рдПрдХ рд╣рдм рдкрд░ рдХрд░реНрдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рдерд╛, рдФрд░
рдпрд╣рд╛рдВ , рд▓реВрдЖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЧрдИ рдереА рдЬреЛ рд░рд╛рдд рдореЗрдВ рдлреЛрди рд╕рдВрдЪрд╛рд░ рдХрд╛рдЯ рджрд┐рдпрд╛ред
рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрд╕рдПрд▓ 4 рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред SL4A рдкрд░ рдмрдбрд╝реЗ, рдЧрдВрднреАрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╣реАрдВ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд┐рдиреА-рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдм рдкрд░
рдХрд░реНрдо рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ , рдЕрдкрдиреА рдкрддреНрдиреА рдХреЛ рдПрд╕рдПрдордПрд╕ рднреЗрдЬреЗрдВ рдХрд┐ рд╡рд╣
рдШрд░ рд╕реЗ рдХреБрдЫ рдХрд┐рд▓реЛрдореАрдЯрд░ рджреВрд░ рд░рд╛рдд рдХрд╛ рдЦрд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗ; рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдЯреЗрд╢рди рдХреЗ рдкрд╛рд╕ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЙрдХреЗрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдЯреНрд░реЗрди рдореЗрдВ рдЬрд╛рдЧрдирд╛ - рдпрд╣ рд╕рдм SL4A рдХреА рдорджрдж рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдФрд░ рд╕рдордп рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдФрд░ рдкрд╛рдпрдерди рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг
PyCon 2011 рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
package com.spodon.pycon; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.widget.EditText; import android.widget.Toast; public class Demo extends Activity { private EditText mEditText = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Hello!"); builder.setMessage("What is your name?"); mEditText = new EditText(this); builder.setView(mEditText); builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(Demo.this, "Cancelled", Toast.LENGTH_SHORT).show(); } }); ...
рд╡рд╣реА рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ 4 (!) рд▓рд╛рдЗрдиреНрд╕ рд▓реЗрдЧрд╛:
import android droid = android.Android() name = droid.getInput("Hello!", "What is your name?") droid.makeToast("Hello, %s" % name.result)
рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдЦрд╛рдорд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рдореБрдЦреНрдп рд╢рд░реАрд░
рдлреЛрди рдкрд░ SL4A рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
рддреЛ, рдЪрд▓реЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
SL4A рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕реЗ
рдпрд╣рд╛рдБ рд╕реЗ рдпрд╛ рдмрд╛рд░рдХреЛрдб рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕реАрдзреЗ SL4A рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ рд╢реЗрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реИред рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛
рдпрд╣рд╛рдБ рд╣реИ ред
SL4A рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реНрдерд╛рдкрдирд╛
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ ftp рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдмрдВрдЯреВ рдореЗрдВ рдПрдХ vsftpd рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдЬреЛ рдХрд┐ ftp рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рдЖрд╕рд╛рди рд╣реИред рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
sudo apt-get install vsftpd
рд╕рд░реНрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ /etc/vsftpd.conf рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓рд╛рдЗрди рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛
#write_enable=YES
рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
$sudo service vsftpd restart
SL4A рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реАрдзреЗ рдлрд╝реЛрди рдкрд░ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрдЪреБрдЕрд▓ рдХреАрдмреЛрд░реНрдб рдкрд░ рдХреЛрдб рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдмреЗрд╣рдж рдердХрд╛рдК рд╣реЛрддрд╛ рд╣реИ, рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдлрд╝реЛрди рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред
рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд▓рд┐рдЦреЗ SL4A рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдлреЛрди рдкрд░ SL4A рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (SL4A рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░, рдореЗрдиреВ - рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░реНрд╕ - рдореЗрдиреВ - рд╕реНрдЯрд╛рд░реНрдЯ рд╕рд░реНрд╡рд░) рджрдмрд╛рдПрдВред рд╣рдо рдПрдХ рдирд┐рдЬреА рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдПрдХ рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдпрд╣ рднреА рдХрд╣реЗрдЧрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд┐рд╕ рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЯрд┐рдкреНрдкрдгреА: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдЬрд┐рд╕ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рдЖрдИрдкреА рдкрддреЗ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреА, рд╡рд╣ рдЖрдкрдХреЗ рдлреЛрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдЬрдм рдПрдХ рдирд┐рдЬреА рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛, рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреЛрди рдкрд░ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧреАред рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП,
рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдо Android рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ 9999 рдкреЛрд░реНрдЯ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕реНрдерд╛рдиреАрдп рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ 46136 рдкрд░ рд╕реБрди рд░рд╣рд╛ рд╣реИ):
$ adb forward tcp:9999 tcp:46136
рдпрд╣ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╕реЗрдЯрдЕрдк рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ:
$ AP_PORT=9999
рдпрд╣ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
рдПрдВрдбреНрд░реЙрдЗрдб рдПрд░реЛ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдм, рдЖрдк рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдлреЛрди рдкрд░ рддреБрд░рдВрдд рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдм рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рд╣реИ:
>>>import android >>>droid = android.Android() >>>droid.makeToast("Hello, world!")
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдпрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рдПрдХ рдбреНрд░реЙрдЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ "рд╣реИрд▓реЛ, рд╡рд░реНрд▓реНрдб!" рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред
рдЕрдм рд╕рдордп рд╣реИ рдХрд┐ SL4A рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ
рдПрдкреАрдЖрдИ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрд░реЛрдд рдХреЛрдб
рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрдпрдирд┐рдд рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рд╣рд░ 30 рд╕реЗрдХрдВрдб рдореЗрдВ рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдБрдЪ рд╣реЛрддреА рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдВрдкреНрдпреВрдЯрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЬрдм рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд droid.makeToast () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ
рдПрдбрд┐рдЯрд┐рдВрдЧ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
$ adb push ftp_sync.py /sdcard/sl4a/scripts
рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдирд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ~ / .bashrc рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
alias andrun='adb shell am start -a com.googlecode.android_scripting.action.LAUNCH_FOREGROUND_SCRIPT -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e com.googlecode.android_scripting.extra.SCRIPT_PATH'
рдлрд┐рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣реА рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
andrun /mnt/sdcard/sl4a/scripts/ftp_sync.py
рдЖрд╡реЗрджрди рд╡рд┐рддрд░рдг
рдмрд╛рд░рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдХрд╛ рд╡рд┐рддрд░рдг
рдЫреЛрдЯреЗ рдПрд╕рдПрд▓ 4 рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдФрд░ рдореВрд▓ рддрд░реАрдХрд╛ рдмрд╛рд░рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЖрдк рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░рдХреЛрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ (рдЪрдпрди рдкреНрд░рдХрд╛рд░ - рдкрд╛рда, рдЖрдХрд╛рд░ - рдПрд▓)ред рдпрд╣ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ SL4A рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВ, рдореЗрдиреВ рджрдмрд╛рдПрдВ - рдмрд╛рд░рдХреЛрдб рд╕реНрдХреИрди рдХрд░реЗрдВред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рдПрдХ .apk рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреИрдХ рдХрд░рдирд╛
SL4A рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рдпрдорд┐рдд .apk рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рднреА рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
SL4A рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЧреНрд░рд╣рдг рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВред рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдЬреАрди рдлрд╝реЛрд▓реНрдбрд░ рд╢реБрд░реВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЧрд╛рдпрдм рд╣реИред рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓реА рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ - рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ - рдЬрд╛рд╡рд╛ - рдмрд┐рд▓реНрдб рдкрд╛рде - рдХреНрд▓рд╛рд╕ рдЪрд░, рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ ANDROID_SDK рдЪрд░ рдмрдирд╛рдПрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, Res / рдХрдЪреНрдЪреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде script.py рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓реЗрдВред рдлрд┐рд░ рдореЗрдиреВ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рдмрд┐рд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╣рдо рдПрдХ .apk рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЬрд╛рдПрдВ - рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ, Android - рдирд┐рд░реНрдпрд╛рдд Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлрд┐рд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

рдкреНрд░рддреНрдпреЗрдХ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдЬрд┐рдЯрд▓ рд░реВрдк рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдВрддрд┐рдо рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдмрдирд╛рдИ рдЧрдИ .apk рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд╣рд╛рдБ рд╕рд╣реЗрдЬрдирд╛ рд╣реИред рдлрд╝реЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ:
$ adb install ftp_sync.apk
рдЖрдк src рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ com.dummy.fooforandroid рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдореЗрдиреВ рдореЗрдВ рдирд╛рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдирд╛рдо рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдЕрд╡рдзрд┐рдпрд╛рдБ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ AndroidManifest.xml рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЗрдХрди рд░реЗрд╕ / рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рднреА рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
SL4A рдХреЗ рд▓рд┐рдП GUI HTML рдорд╛рд░реНрдХрдЕрдк рдФрд░ рд╡реЗрдм рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХрд╛
рдПрдХ рдЙрджрд╛рд╣рд░рдг
рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛
рд╣реИ ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП SL4A рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдЬреЛ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ Android рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЕрдкрдиреЗ рдЦреБрд▓реЗрдкрди рдФрд░ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред SL4A Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реНрддрд░ рд▓рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
SL4A рдХреЗ рдиреБрдХрд╕рд╛рди
- SL4A рдЕрднреА рднреА рдХреЗрд╡рд▓ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд░рдг рдореЗрдВ рд╣реИ, рдЕрдм рдХрд╛рдлреА рд╕рд╛рд░реЗ рдмрдЧ рд╣реИрдВ
- GUI рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ webView (html рдорд╛рд░реНрдХрдЕрдк) рдФрд░ рдорд╛рдирдХ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрдПрдПрд╕рдЯреА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдЖрд░ 5 рд╕рдВрд╕реНрдХрд░рдг (рдЕрднреА рднреА рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ) рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдЬреАрдпреВрдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ - рдПрд╕рдИрдПрд╕рдпреВрдЖрдИ
- рдПрд╕рдПрд▓ 4 рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЦреЛ рджреЗрддрд╛ рд╣реИ
- рд╕реАрдорд┐рдд рдПрдкреАрдЖрдИ рдХреНрд╖рдорддрд╛рдУрдВ
рд╕рдВрджрд░реНрдн
рдПрдВрдбреНрд░реЙрдЗрдб-рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ code.google.com code.google.com рдкрд░
SL4A рдФрд░ рдкрд╛рдпрдерди
рдкреНрд░реЛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдкрд░ SL4A рдХреЗ рд╕рд╛рде рдмреБрдХ рдХрд░реЗрдВ: рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЗрдЯрд┐рд╡ рдРрдк рд▓рд┐рдЦрдирд╛рдЕрдЬрдЧрд░ SL4A рдХреЗ рд▓рд┐рдПрдПрдкреАрдЖрдИ рд╡рд┐рд╡рд░рдг