{"id":12463,"date":"2017-05-05T08:34:06","date_gmt":"2017-05-05T06:34:06","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12463"},"modified":"2017-05-05T08:34:06","modified_gmt":"2017-05-05T06:34:06","slug":"tutti-i-tools-dellandroid-sdk","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/tutti-i-tools-dellandroid-sdk\/","title":{"rendered":"Tutti i Tools dell&#8217;Android SDK"},"content":{"rendered":"<p>Quando si inizia a <strong>programmare app per Android<\/strong> &#8211; tipicamente con l&#8217;IDE ufficiale Android Studio &#8211; si impara ben presto che l&#8217;Android SDK ad esso collegato deve\u00a0essere configurato. Ci\u00f2 non \u00e8 un problema visto che tramite il menu Tools &gt; Android &gt; SDK Manager \u00e8 raggiungibile un pannello che permette la scelta ed\u00a0lo scaricamento dei componenti di cui abbiamo bisogno. Ci sono per\u00f2, tra i pacchetti disponibili, alcuni che possono generare confusione, se non altro per la somiglianza del loro nome: <strong>Android SDK Build Tools<\/strong>, <strong>Android SDK Platform-Tools<\/strong> e <strong>Android SDK Tools<\/strong>. In questo post, cerchiamo di fare un p\u00f2 di chiarezza definendo i ruoli che questi pacchetti svolgono e cosa hanno in comune.<\/p>\n<p>Ad ognuno di essi, corrisponde una diversa cartella nel SDK e vengono continuamente aggiornati via SDK Manager.<\/p>\n<p>Orientativamente, i loro scopi sono:<\/p>\n<ul>\n<li>Android SDK <strong>Tools<\/strong>: \u00e8 un pacchetto di strumenti per lo sviluppo e il debugging delle applicazioni come &#8211; solo per citarne alcuni &#8211;\u00a0<em>ddms<\/em> (monitoraggio di thread e heap memory, cattura dello schermo del dispositivo e via dicendo), <em>android<\/em> (permette di aprire un SDK Manager da riga di comando), <em>mkscard<\/em> (produce un&#8217;immagine disco in FAT32 per simulare una SD Card nel dispositivo);<\/li>\n<li>Android SDK <strong>Platform-Tools<\/strong>: sono strumenti di interazione con la piattaforma tra cui spicca l&#8217;<em>Android Debug Bridge(adb)<\/em> che costituisce il mezzo di comunicazione tra la macchina di sviluppo e i dispositivi sia reali sia emulati. In realt\u00e0, adb \u00e8 un pacchetto composto da tre software: un <em>client<\/em> che viene eseguito sulla macchina di sviluppo ed invia comunicazioni ai dispositivi; un <em>daemon<\/em> che gira in background sul dispositivo ed esegue i comandi ricevuti; un <em>server<\/em> che gira in background sulla macchina di sviluppo e fa da ponte tra il client ed il daemon;<\/li>\n<li>Android SDK <strong>Build Tools<\/strong>: questi sono i veri strumenti che trasformano il nostro progetto in un&#8217;app Android occupandosi del vero e proprio processo di building.<\/li>\n<\/ul>\n<p>Di tutti e tre i componenti, l&#8217;unico la cui versione viene nominata all&#8217;interno dei nostri progetti \u00e8 l&#8217;ultimo, quello relativo ai Build Tools e ci\u00f2 avviene all&#8217;interno del file build.gradle dei moduli:<\/p>\n<pre class=\"lang:sh decode:true \">android {\r\n    ...\r\n    buildToolsVersion \"25.0.0\"\r\n    ...\r\n}<\/pre>\n<p>Infatti, altra cosa che possiamo notare, nel SDK Manager (qui vediamo la rappresentazione tradizionale), solo dei Build Tools vengono conservate vecchie versioni mentre i Platform Tools e gli SDK Tools vengono semplicemente aggiornati alla versione pi\u00f9 recente.<\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2016\/10\/android-sdk-build-platform-tools.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12468\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2016\/10\/android-sdk-build-platform-tools.jpg\" alt=\"android-sdk-build-platform-tools\" width=\"653\" height=\"346\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2016\/10\/android-sdk-build-platform-tools.jpg 653w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2016\/10\/android-sdk-build-platform-tools-300x159.jpg 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/a><\/p>\n<p>Questi concetti, quando si inizia a programmare, possono sembrare degli approfondimenti non indispensabili eppure, con il tempo, si apprezza quanto anche la loro conoscenza possa essere utile ad una maggiore consapevolezza dei propri strumenti di lavoro.<\/p>\n<p>Alla prossima!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando si inizia a programmare app per Android &#8211; tipicamente con l&#8217;IDE ufficiale Android Studio &#8211; si&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13012,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[7],"tags":[1278,1775,1541,1737],"class_list":["post-12463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-strumenti-di-sviluppo","tag-android","tag-android-sdk","tag-android-studio","tag-creare-app-mobile"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12463"}],"version-history":[{"count":7,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12463\/revisions"}],"predecessor-version":[{"id":13013,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12463\/revisions\/13013"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13012"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}