title: What is Smali Code Android
body: <p>I am going to learn a little bit about Dalvik VM, dex and Smali.</p>
  
  <p>I have read about smali, but still cannot clearly understand where its place in chain of compilers. And what its purpose.<br>
  Here some questions:</p>
  
  <ol>
  <li>As I know, dalvik as other Virtual Machines run bytecode, in case of Android it is dex byte code.    </li>
  <li>What is smali? Does Android OS or Dalvik Vm work with it directly, or it is just the same dex bytecode but more readable for the human?   </li>
  <li>Is it something like dissasembler for Windows (like OllyDbg) program executable consist of different machines code (D3 , 5F for example) and there is appropriate assembly command to each machine code, but Dalvik Vm also is software, so smali is readable representation of bytecodes </li>
  <li>There is new ART enviroment. Is it still use bytecodes or it executes directly native code? </li>
  </ol>
  
  <p>Thank you in advance.</p>