6. Ekler
Bu belgede kullanılan araçların Windows 7 ile 10 arasında çalışan bilgisayarlara nasıl kurulacağını burada anlatıyoruz. Okuyucu, kendi ortamına göre gerekli ayarlamaları yapmalıdır.
6.1. IDE Arduino'nun Kurulumu
Arduino'nun resmi web sitesi [http://www.arduino.cc/]'tir. Arduino [http://arduino.cc/en/Main/Software]'ler için geliştirme ortamı olan IDE'i buradan bulabilirsiniz:
![]() | ![]() |
İndirilen [1] dosyası bir zip dosyasıdır ve açıldığında [2] dizin yapısını oluşturur. IDE dosyasını, [3] adlı yürütülebilir dosyaya çift tıklayarak çalıştırabilirsiniz.
6.2. Arduino sürücüsünün kurulumu
IDE'in bir Arduino ile iletişim kurabilmesi için, Arduino'nun PC ana bilgisayar tarafından tanınması gerekir. Bunun için aşağıdaki adımları uygulayabilirsiniz:
- Arduino'yu ana bilgisayarın bir USB bağlantı noktasına takın;
- sistem, yeni USB aygıtının sürücüsünü bulmaya çalışacaktır. Ancak bulamayacaktır. Bu durumda, sürücünün <arduino>/drivers konumunda olduğunu belirtin; burada <arduino>, IDE Arduino'nun kurulum klasörüdür.
6.3. IDE'in Test Edilmesi
IDE'i test etmek için şu şekilde ilerleyebilirsiniz:
- IDE'i çalıştırın;
- Arduino'yu PC'e USB kablosu ile bağlayın. Şu an için ağ kartını dahil etmeyin;
![]() | ![]() |
- [1]'te, USB bağlantı noktasına bağlı Arduino kartının türünü seçin;
- [2]'te, Arduino'nun bağlı olduğu USB bağlantı noktasını belirtin. Bunu öğrenmek için Arduino'yu çıkarın ve bağlantı noktalarını not edin. Tekrar takın ve bağlantı noktalarını yeniden kontrol edin: eklenen bağlantı noktası Arduino'ya ait olandır;
IDE dosyasında bulunan örneklerden bazılarını çalıştırın:
![]() |
Örnek yüklenir ve görüntülenir:
![]() |
IDE ile birlikte gelen örnekler çok öğretici ve açıklamaları çok iyi. Arduino kodu C dilinde yazılmıştır ve birbirinden açıkça ayrılan iki bölümden oluşur:
- uygulamanın başlatılması sırasında, yani " Arduino'ya yüklendiğinde " veya uygulama Arduino'da zaten mevcutken [Reset] düğmesine basıldığında çalışır. Uygulamanın başlatma kodu buraya yazılır;
- sürekli çalışan (sonsuz döngü) bir [loop] fonksiyonu. Uygulamanın ana kısmı buraya yazılır.
Burada,
- [setup] fonksiyonu 13 numaralı pini çıkış olarak yapılandırır;
- [loop] fonksiyonu ise LED'i tekrar tekrar açıp kapatır: LED her saniye yanıp söner.
1 ![]() |
Görüntülenen program, [1] düğmesi ile Arduino'ya aktarılır (yüklenir). Aktarıldıktan sonra program çalışır ve 13 numaralı LED sonsuza kadar yanıp sönmeye başlar.
6.4. Arduino'nun ağ bağlantısı
Arduino veya Arduino'lar ile PC ana bilgisayarı aynı özel ağda olmalıdır:
![]() |
Tek bir Arduino varsa, bu cihazı basit bir PC kablosu ile RJ 45 ana cihaza bağlayabilirsiniz. Birden fazla Arduino varsa, PC ana cihazı ve Arduino'lar bir mini hub aracılığıyla aynı ağa bağlanacaktır.
PC ana cihazı ve Arduino'lar 192.168.2.x özel ağına bağlanacaktır.
- Arduino'ların IP adresi kaynak kod tarafından belirlenir. Bunun nasıl yapıldığını göreceğiz;
- Ana bilgisayarın IP adresi şu şekilde ayarlanabilir:
- [Panneau de configuration\Réseau et Internet\Centre Réseau et partage] seçeneğini seçin:
![]() |
- [1]'e gidin, [Connexion au réseau local] bağlantısını takip edin
![]() | ![]() |
- [2]'e, bağlantı özelliklerini görüntüleyin;
- [4]'te, bağlantının özelliklerini görüntüleyin; IP v4 [3];
![]() |
- [5]'te, ana bilgisayara IP [192.168.2.1] adresini atayın;
- [6]'e, ağa [255.255.255.0] maskesini atayın;
- hepsini [7]'te onaylayın.
6.5. Ağ uygulamasının test edilmesi
IDE ile [Exemples / Ethernet / WebServer] örneğini yükleyin:
/*
Web Server
A simple web server that shows the value of the analog input pins.
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Analog inputs attached to pins A0 through A5 (optional)
created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
*/
#<SPI.h> dosyasını dahil et
#<Ethernet.h> dosyasını dahil et
// Aşağıya denetleyiciniz için bir MAC adresi ve bir IP adresi girin.
// IP adresi, yerel ağınıza bağlı olacaktır:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
// Ethernet sunucu kütüphanesini başlatın
// kullanmak istediğiniz IP adresi ve bağlantı noktasıyla
// (HTTP için varsayılan bağlantı noktası 80'dir):
EthernetServer server(80);
void setup() {
// Seri iletişimi başlatın ve bağlantı noktasının açılmasını bekleyin:
Serial.begin(9600);
while (!Serial) {
; // seri bağlantı noktasının bağlanmasını bekleyin. Yalnızca Leonardo için gereklidir
}
// Ethernet bağlantısını ve sunucuyu başlatın:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// Gelen istemcileri dinle
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// Bir HTTP isteği boş bir satırla biter
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// satırın sonuna ulaştıysanız (satır sonu
// karakteri aldıysanız) ve satır boşsa, HTTP isteği sona ermiştir,
// bu nedenle bir yanıt gönderebilirsiniz
if (c == '\n' && currentLineIsBlank) {
// standart bir HTTP yanıt başlığı gönderin
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// bir meta refresh etiketi ekleyin, böylece tarayıcı her 5 saniyede bir sayfayı yeniden yükler:
client.println("<meta http-equiv=\"refresh\" content=\"5\">");
// her bir analog giriş pininin değerini çıktı olarak verin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
// yeni bir satıra başlıyorsunuz
currentLineIsBlank = true;
}
else if (c != '\r') {
// mevcut satırda bir karakter aldınız
currentLineIsBlank = false;
}
}
}
// web tarayıcısına verileri alması için zaman tanıyın
delay(1);
// bağlantıyı kapat:
client.stop();
Serial.println("client disconnected");
}
}
Bu uygulama, 25. satırdaki IP adresinde 80 numaralı bağlantı noktasında (30. satır) bir web sunucusu oluşturur. 23. satırdaki MAC adresi, Arduino'nun ağ kartında belirtilen MAC adresidir.
[setup] fonksiyonu web sunucusunu başlatır:
- 34. satır: Uygulamanın günlük kayıtlarını tutacağı seri bağlantı noktasını başlatır. Bu günlükleri takip edeceğiz;
- 41. satır: TCP-IP düğümü (IP, bağlantı noktası) başlatılır;
- 42. satır: 30. satırdaki sunucu bu ağ düğümünde başlatılır;
- 43-44. satırlar: Web sunucusunun IP adresi kaydedilir;
[loop] işlevi web sunucusunu uygular:
- 50. satır: Bir istemci web sunucusuna bağlanırsa [server].available değerini döndürür, aksi takdirde null değerini döndürür;
- 51. satır: İstemci null değilse;
- 55. satır: istemci bağlı olduğu sürece;
- satır 56: Müşteri karakter gönderdiyse [client].available değerinin sonucu doğrudur. Bu karakterler bir tamponda depolanır. Bu tampon boş olmadığı sürece [client].available değerinin sonucu doğrudur;
- satır 57: istemci tarafından gönderilen bir karakter okunur;
- satır 58: Bu karakter, günlük konsolunda yankılanarak görüntülenir;
- 62. satır: HTTP protokolünde, istemci ve sunucu metin satırları alışverişinde bulunur.
- istemci, web sunucusuna bir dizi metin satırı ve sonunda boş bir satır içeren bir HTTP isteği gönderir;
- sunucu daha sonra müşteriye bir yanıt göndererek ve bağlantıyı kapatarak yanıt verir;
- satır: Sunucu, istemciden aldığı HTTP başlıklarıyla hiçbir işlem yapmaz. Sadece boş satırı bekler: \n karakterini içeren bir satır;
- 64-67. satırlar: sunucu, HTTP protokolünün standart metin satırlarını istemciye gönderir. Bu satırlar boş bir satırla sona erer (67. satır);
- 68. satırdan itibaren sunucu, müşterisine bir belge gönderir. Bu belge sunucu tarafından dinamik olarak oluşturulur ve HTML biçimindedir (68-69. satırlar);
- 71. satır: İstemci tarayıcısından sayfayı her 5 saniyede bir yenilemesini isteyen özel bir HTML satırı. Böylece tarayıcı, aynı sayfayı her 5 saniyede bir isteyecektir;
- satır 73-80: sunucu, Arduino'nun 6 analog girişinin değerlerini istemci tarayıcısına gönderir;
- satır 81: HTML belgesi kapatılır;
- satır 82: 55. satırdaki while döngüsünden çıkılır;
- 97. satır: İstemciyle olan bağlantı kapatılır;
- 98. satır: olay, günlük konsoluna kaydedilir;
- 100. satır: loop işlevinin başına geri dönülür: sunucu, müşterileri dinlemeye yeniden başlar. Müşteri tarayıcısının aynı sayfayı her 5 saniyede bir yeniden isteyeceğini söylemiştik. Sunucu, ona yeniden yanıt vermek için hazır olacaktır.
- satırdaki kodu değiştirerek Arduino'nuzun IP adresini girin, örneğin:
Programı Arduino'ya yükleyin. Günlük konsolunu (Ctrl-M) (büyük M) başlatın:
![]() | ![]() |
- [1] olarak, günlük konsolunda. Sunucu başlatıldı;
- [2] adresinde, bir tarayıcı kullanarak Arduino'nun IP adresine erişilir. Burada [192.168.2.2], varsayılan olarak [http://198.162.2.2:80] olarak çevrilir;
- [3]'te, web sunucusu tarafından gönderilen bilgiler yer alır. Tarayıcı sayfasının kaynak koduna bakıldığında şunlar görülür:
Burada, sunucu tarafından gönderilen metin satırlarını görebiliriz. Arduino tarafında ise, log konsolu istemcinin gönderdiği verileri şu şekilde gösterir:
- 2-9. satırlar: standart HTTP başlıkları;
- 10. satır: bunları sonlandıran boş satır.
Bu örneği iyice inceleyin. TP'te kullanılan Arduino programlamasını anlamanıza yardımcı olacaktır.
6.6. aJson kütüphanesi
Yazılacak olan TP'te, Arduino'lar müşterileriyle jSON formatında metin satırları alışverişinde bulunur. Varsayılan olarak, IDE Arduino'su, jSON'i yönetmek için bir kütüphane içermez. aJson kütüphanesini, URL [https://github.com/interactive-matter/aJson] adresinden indirip kuracağız.
![]() | ![]() |
- [1]'te, Github deposundan sıkıştırılmış sürümü indirin;
- klasörü açın ve [aJson-master] [2] klasörünü [<arduino>/libraries] [3] klasörüne kopyalayın; burada <arduino>,IDE Arduino'nun kurulum klasörüdür;
![]() | ![]() | ![]() |
- [4]'te, bu klasörü [aJson] olarak yeniden adlandırın;
- içeriğini [5] olarak değiştirin.
Şimdi, IDE Arduino'yu çalıştırın:
![]() |
Örnekler bölümünde artık aJson kütüphanesi için örnekler olduğunu kontrol edin. Bu örnekleri çalıştırın ve inceleyin.
6.7. Android tablet
Örnekler, Samsung Galaxy Tab 2 tablet ile test edilmiştir.
Örnekleri bir tabletle test etmek için, öncelikle geliştirme makinenize tabletin sürücüsünü yüklemeniz gerekir. Samsung Galaxy Tab 2 tabletinin sürücüsü şu adreste bulunabilir: URL [http://www.samsung.com/fr/support/usefulsoftware/KIES/]:
![]() |
Örnekleri test etmek için tableti bir ağa (muhtemelen Wi-Fi) bağlamanız ve bu ağdaki adresini bilmeniz gerekir. İşlem şu şekildedir (Samsung Galaxy Tab 2):
- tabletinizi açın;
- tabletteki uygulamalar arasında (sağ üst köşede) dişli simgesi olan ve adı [paramètres] olan uygulamayı bulun;
- sol taraftaki bölümde Wi-Fi'yi etkinleştirin;
- sağdaki bölümden bir Wi-Fi ağı seçin;
- ağa bağlandıktan sonra, seçtiğiniz ağa kısa bir dokunuş yapın. Tabletin IP adresi görüntülenecektir. Bu adresi not edin. Buna ihtiyacınız olacak;
Hala [Paramètres] uygulamasındayken,
- sol tarafta [Options de développement] seçeneğini (seçeneklerin en altında) seçin;
- sağ tarafta [Débogage USB] seçeneğinin işaretli olduğunu kontrol edin.
Menüye geri dönmek için, alttaki durum çubuğunda ortadaki ev simgesine dokunun. Yine alttaki durum çubuğunda,
- en soldaki simge geri git simgesidir: bir önceki ekrana dönersiniz;
- en sağdaki simge ise görev yönetimi simgesidir. Tabletiniz tarafından belirli bir anda yürütülen tüm görevleri görebilir ve yönetebilirsiniz;
Tabletinizi, ürünle birlikte gelen USB kablosuyla PC cihazınıza bağlayın.
Wi-Fi adaptörünü PC cihazındaki USB bağlantı noktalarından birine takın ve ardından tabletle aynı Wi-Fi ağına bağlanın. Bunu yaptıktan sonra, bir DOS penceresinde [ipconfig] komutunu girin:
PC cihazınızda iki ağ kartı ve dolayısıyla iki IP adresi bulunmaktadır:
- 9. satırdaki adres, kablolu ağdaki PC cihazına aittir;
- 17. satırdaki adres ise kablosuz ağdaki PC'e aittir;
Bu iki bilgiyi not edin. Bunlara ihtiyacınız olacak. Artık şu yapılandırmada bulunuyorsunuz:
![]() |
Tabletiniz, PC cihazınıza bağlanmalıdır. Bu cihaz normalde, dışarıdan gelen hiçbir unsurun PC ile bağlantı kurmasını engelleyen bir güvenlik duvarı ile korunmaktadır. Bu nedenle güvenlik duvarını devre dışı bırakmanız gerekir. Bunu [Panneau de configuration\Système et sécurité\Pare-feu Windows] seçeneği ile yapabilirsiniz. Bazen antivirüs yazılımı tarafından kurulan güvenlik duvarını da devre dışı bırakmanız gerekebilir. Bu, kullandığınız antivirüs yazılımına bağlıdır.
Şimdi, PC cihazınızda, [ping 192.168.1.y] komutunu kullanarak tabletle ağ bağlantısını kontrol edin; burada [192.168.1.y], tabletin IP adresidir. Şuna benzer bir sonuç almanız gerekir:
4-7. satırlar, IP adresli tabletin [192.168.1.y] komutuna yanıt verdiğini gösterir.
6.8. JDK'in kurulumu
URL ve [http://www.oracle.com/technetwork/java/javase/downloads/index.html] (Haziran 2016) sürümlerinde, en güncel olan JDK bulunur. Bundan sonra, JDK'in kurulum klasörüne <jdk-install> adı verilecektir.
![]() |
6.9. Genymotion emülatör yöneticisinin kurulumu
[Genymotion] şirketi, yüksek performanslı bir Android emülatörü sunmaktadır. Bu emülatör, URL ve [https://cloud.genymotion.com/page/launchpad/download/] (Haziran 2016) sürümlerinde mevcuttur.
Kişisel kullanım sürümünü edinmek için kayıt olmanız gerekecektir. [Genymotion] ürününü, VirtualBox sanal makinesiyle birlikte indirin:

Bundan sonra [Genymotion] kurulum klasörüne <genymotion-install> adını vereceğiz. [Genymotion] dosyasını çalıştırın. Ardından bir tablet görüntüsü indirin:
![]() |
- [1] dosyasında, [2] dosyasında açıklanan sanal terminali ekleyin;
![]() |
- [3]'te terminali yapılandırın;
![]() | ![]() |
- [4-5] olarak değiştirin, terminali ortamınıza göre özelleştirin;
- [6]'te sanal terminali başlatın;
Her şey yolunda giderse, Android emülatör penceresi açılır:

Bazen Android emülatörü başlatılamayabilir. Windows işletim sistemli bir bilgisayarda aşağıdaki iki noktayı kontrol edebilirsiniz:
- [Hyper-V] sanal makinesinin kurulu olmadığını kontrol edin. Gerekirse, [1-2]'i kaldırın;
![]() | ![]() |
- ardından [Centre Réseau et partage] ve [1] yapılandırma sihirbazında:
![]() |
![]() | ![]() |
- [3]'te, Virtual Box sanal makinesiyle ilişkili harita veya haritaları seçin;
![]() |
- [6]'te, VirtualBox için sürücünün işaretli olduğunu kontrol edin. Virtual Box sanal makinesine bağlı tüm kartlar için bu işlemi tekrarlayın;
6.10. Maven Kurulumu
Maven, bir Java projesinin bağımlılıklarını yönetmeye yarayan bir araçtır ve daha fazlasını da sunar. URL [http://maven.apache.org/download.cgi] adresinden indirilebilir.
![]() |
Arşivi indirin ve açın. Maven'ın kurulum klasörüne <maven-install> adını vereceğiz.
![]() |
- [1] dosyasında, [conf / settings.xml] dosyası Maven'ı yapılandırır;
Bu dosyada şu satırlar bulunur:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
- satırdaki varsayılan değer, benim durumumda olduğu gibi {user.home} dosyanızın yolunda bir boşluk varsa (örneğin [C:\Users\Serge Tahé]), bazı yazılımlar için sorun yaratabilir. Bu durumda şunun gibi bir şey yazacağız:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>
ve 7. satırda boşluk içeren bir yol kullanmaktan kaçınmalısınız.
6.11. IDE Android Studio'nun Kurulumu
IDE Android Studio Community Edition, URL [https://developer.android.com/studio/index.html] (Haziran 2016) adresinden indirilebilir:
![]() |
IDE'i kurun ve çalıştırın. [1-8] prosedürünü izleyerek, aşağıdaki örneklerde kullanılacak SDK Manager bileşenlerini kurun. Daha yeni bileşenleri yüklemeye karar verirseniz, Android Studio'dan, örneklerin yapılandırmasının ortamınızda bulunmayan SDK bileşenlerine başvurduğuna dair uyarılar alabilirsiniz. Bu durumda, IDE tarafından sunulan önerileri uygulayabilirsiniz.
![]() |
![]() |
![]() |
- [9]'te, paketlerin ayrıntılarını görüntüleyin:
![]() |
- Yukarıdaki [11] örneğinde, örnekler SDK Build-Tools 23.0.3 sürümünü kullanmıştır;
- aşağıdaki [9-12]'te, [Genymotion] emülatör yöneticisini kurduğunuz klasörü belirtin;
![]() | ![]() |
- [13-18]'te, projelerin varsayılan türünü yapılandırın;
![]() | ![]() |
- [17] dosyasında, varsayılan olarak önerilen değer genellikle doğrudur;
- [18]'te, JDK 1.8 sürümüne sahip olduğunuzdan emin olun;
Aşağıda, [19-26]'te, varsayılan olarak İngilizce dilinde olan yazım denetimi devre dışı bırakılır;
![]() | ![]() |
![]() |
- Aşağıda, [27-28]'te, istediğiniz klavye kısayolu türünü seçin. IntelliJ'nin varsayılan ayarını koruyabilir veya daha alışkın olduğunuz başka bir IDE'teki ayarı seçebilirsiniz;
![]() |
- Aşağıdaki [29-30] seçeneğinde, kodun satır numaralarını görüntüleyin;
![]() |
- aşağıda, [31-34]'te, IDE başlatıldığında ilk projeyi ve ardından sonraki projeleri nasıl yönetmek istediğinizi belirtin;
![]() |
Android 2.1 (Mayıs 2016) sürümünde, [Instant Run] teknolojisi bazen sorunlara neden olmaktadır. Bu belgede, bu teknolojiyi devre dışı bıraktık:
![]() | ![]() |
- [3-4]'te her şey devre dışı bırakılmıştır;
6.12. Örneklerin kullanımı
Örneklerin Android Studio projeleri ICI adresinde mevcuttur. Bunları indirin.
![]() |
Örnekler, daha önce tanımlanan bileşenlerle oluşturulmuştur:
- JDK 1.8;
- Çalıştırma için Android SDK Platform 23;
Aşağıdaki SDK araçları:
![]() |
Çalışma ortamınız yukarıdakine uymuyorsa, projelerin yapılandırmasını değiştirmeniz gerekecektir. Bu oldukça zahmetli olabilir. İlk etapta, yukarıdakine benzer bir çalışma ortamı oluşturmak muhtemelen daha kolay olacaktır.
Android Studio'yu başlatın ve örneğin [exemple-07] projesini açın:
![]() | ![]() |
![]() |
- [1-3]'te, [Exemple-07] projesini açın;
- [4]'te, [local.properties] dosyasını kontrol ederiz;
![]() | ![]() |
- yukarıdaki 11. satıra, Android SDK Yöneticisi <sdk-manager-install> konumunu girin. Bunu [1-4] prosedürünü izleyerek bulabilirsiniz:
![]() |
Bu belgedeki tüm örnekler, [build.gradle] [1-2] dosyasıyla yapılandırılmış Gradle projeleridir:
![]() |
Örnek 07'deki [build.gradle] dosyası şöyledir:
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
// Android eklentisinin güncel sürümüyle değiştirin
classpath 'com.android.tools.build:gradle:2.1.0'
// Android'in Gradle eklentisi 0.11 sürümünden itibaren android-apt >= 1.3 sürümünü kullanmanız gerekir
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = '4.0.0'
dependencies {
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
repositories {
jcenter()
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName android.defaultConfig.applicationId
}
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "android.exemples"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
Oluşturduğunuz Android ortamına (SDK ve araçlar) göre, 8, 21, 22, 38 ve 39. satırlardaki sürümleri değiştirmeniz gerekebilir. Android Studio, önerilerde bulunarak size yardımcı olur. En kolayı, bu önerileri takip etmektir.
[build.gradle] dosyasındaki öğelere başka bir yolla da erişilebilir:
![]() | ![]() |
- [3] dosyasının farklı sekmeleri, [build.gradle] dosyasının farklı değerlerini içerir. Dolayısıyla, [build.gradle] dosyasındaki sözdizimi sorunlarından kurtulmanızı sağlayan bu yöntemle dosyayı oluşturabilirsiniz;
Kontrol edilmesi gereken bir diğer nokta, IDE ve [5] tarafından kullanılan JDK dosyasıdır:
![]() |
[6] dosyasında, JDK dosyasını kontrol edin.
Tüm örnekler, indirilmesi gereken bağımlılıkları olan Gradle projeleridir. Bunu yapmak için şu adımları uygulayabilirsiniz:
![]() | ![]() ![]() |
- [5]'te projeyi derleyin;
Projede hata kalmadığında, [1-8] adlı bir çalıştırma yapılandırması oluşturulmalıdır:
![]() | ![]() |
- [8]'te, çalıştırma için her zaman aynı terminali kullanmak istediğinizi belirtebilirsiniz. Genellikle, her yeni çalıştırmada kullanılacak terminali belirtmek zorunda kalmamak için bu seçenek işaretlenir. Burada, farklı Android cihazlarını test edeceğimiz için bu seçeneği işaretlemeden bırakıyoruz;
- çalıştırma yapılandırması oluşturulduktan sonra, Android emülatör yöneticisi [1-3]'i başlatıyoruz;
![]() | ![]() |
- Android emülatörü açılmıyorsa, 6.11. paragrafta belirtilen hususları kontrol edin;
Uygulamayı emülatörde başlatmak için aşağıdaki adımları izleyin [1-4]:
![]() | ![]() |
- [2]'te, daha önce başlattığınız emülatörün görünmesi gerekir;
![]() |
- [5]'te, emülatörün görüntülediği ekran;
Şimdi bir Android tableti USB'in bir bağlantı noktasına takın ve üzerinde uygulamayı çalıştırın:
![]() |
- [6]'te Android tableti seçin ve uygulamayı test edin.
[7]'te önceden tanımlanmış sanal terminaller bulunmaktadır. Bunlara yeni terminaller eklemeyi ve mevcut terminalleri silmeyi öğreneceğiz.
![]() |
![]() |
Yukarıdaki ekran görüntüsünde, önerilen terminallerin tümü API 22 ile çalışıyor. API 23 ile çalışmak istediğimiz için hepsini siliyoruz. Silinecek terminaller için [2-3] prosedürünü uyguluyoruz.

![]() |
- [4-5]'te bir tablet ekliyoruz;
![]() |
- [6]'te, bir API seçilir. Yukarıda, 64 bit Windows için API 23'ü seçiyoruz;
![]() |
- [7]'e, yapılan yapılandırmanın özetini;
- [8]'te, sanal terminal için daha gelişmiş bir yapılandırma yapılabilir;
![]() |
Sihirbaz tamamlandığında, oluşturulan terminal [9]'te görünür.
Bu işlem tamamlandıktan sonra, [Exemple-07] komutunu yeniden çalıştırırsak, şu pencere karşımıza çıkar:
![]() |
- [1]'te yeni sanal terminal görünür;
- [2]'te yeni sanal terminaller oluşturabilirsiniz;
Kendi ortamınıza en uygun sanal terminali belirlemek için denemeler yapın. Bu belgede yer alan örnekler, esas olarak Genymotion emülatörü ile test edilmiştir.
Hangi sanal terminal seçilirse seçilsin, [Logcat] [1-2] adlı pencerede günlükler görüntülenir:

Bu günlükleri düzenli olarak kontrol edin. Programınızın çökmesine neden olan istisnalar burada bildirilecektir.
Ayrıca, programınızı genel hata ayıklama araçlarıyla da hata ayıklayabilirsiniz:
![]() | ![]() |
- [2]'te, hedef satırın solundaki sütuna bir kez tıklayarak bir durma noktası yerleştirilir. Tekrar tıklamak durma noktasını kaldırır;
![]() |
- [3]'te, durma noktasında şunu yapın:
- [F6], satırda yöntem çağrıları varsa, yöntemlere girmeden satırı çalıştırmak için,
- [F5], satırda yöntem çağrıları varsa yöntemlere girerek satırı çalıştırmak için,
- [F8], bir sonraki durma noktasına kadar devam etmek için;
- [Ctrl-F2], hata ayıklamayı durdurmak için;
6.13. Chrome eklentisinin kurulumu [Advanced Rest Client]
Bu belgede, Google'ın Chrome tarayıcısı (http://www.google.fr/intl/fr/chrome/browser/) kullanılmaktadır. Buna [Advanced Rest Client] uzantısı eklenecektir. Aşağıdaki adımları uygulayabilirsiniz:
- Chrome tarayıcısıyla [Google Web store] sitesine (https://chrome.google.com/webstore) gidin;
- [Advanced Rest Client] uygulamasını arayın:
![]() |
- uygulama artık indirilmeye hazırdır:
![]() |
- Uygulamayı indirmek için bir Google hesabı oluşturmanız gerekecektir. [Google Web Store] daha sonra [1] onayını ister:
![]() | ![]() |
- [2]'te, eklenen uzantı [Applications] [3] seçeneğinde kullanılabilir. Bu seçenek, tarayıcıda oluşturduğunuz her yeni sekmede (CTRL-T) görüntülenir.
6.14. Java'da jSON 'inin yönetimi
Geliştiriciye şeffaf bir şekilde, [Spring MVC] çerçeve yapısı jSON [Jackson] kütüphanesini kullanır. jSON (JavaScript Nesne Notasyonu) kavramını açıklamak amacıyla, burada nesneleri jSON formatında serileştiren ve bunun tersini yaparak üretilen jSON dizelerini deserileştirip başlangıçtaki nesneleri yeniden oluşturan bir program sunuyoruz.
'Jackson' kütüphanesi, bir nesnenin
- bir nesnenin jSON dizesini: new ObjectMapper().writeValueAsString(object);
- bir jSON dizesinden bir nesne oluşturmak: new ObjectMapper().readValue(jsonString, Object.class).
Her iki yöntem de bir IOException'i başlatabilir. İşte bir örnek.
![]() |
Yukarıdaki proje, aşağıdaki [pom.xml] dosyasını içeren bir Maven projesidir;
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>istia.st.pam</groupId>
<artifactId>json</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.3</version>
</dependency>
</dependencies>
</project>
- 12-16. satırlar: 'Jackson' kütüphanesini yükleyen bağımlılık;
[Personne] sınıfı şu şekildedir:
package istia.st.json;
public class Personne {
// veriler
private String nom;
private String prenom;
private int age;
// yapıcılar
public Personne() {
}
public Personne(String nom, String prénom, int âge) {
this.nom = nom;
this.prenom = prénom;
this.age = âge;
}
// imza
public String toString() {
return String.format("Personne[%s, %s, %d]", nom, prenom, age);
}
// alıcı ve ayarlayıcılar
...
}
[Main] sınıfı şöyledir:
package istia.st.json;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Main {
// serileştirme / ters serileştirme aracı
static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws IOException {
// kişi oluşturma
Personne paul = new Personne("Denis", "Paul", 40);
// JSON görüntüleme
String json = mapper.writeValueAsString(paul);
System.out.println("Json=" + json);
// JSON'dan Kişi nesnesi oluşturma
Personne p = mapper.readValue(json, Personne.class);
// Kişi görüntüleme
System.out.println("Personne=" + p);
// bir dizi
Personne virginie = new Personne("Radot", "Virginie", 20);
Personne[] personnes = new Personne[]{paul, virginie};
// JSON görüntüleme
json = mapper.writeValueAsString(personnes);
System.out.println("Json personnes=" + json);
// sözlük
Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
hpersonnes.put("1", paul);
hpersonnes.put("2", virginie);
// JSON'un görüntülenmesi
json = mapper.writeValueAsString(hpersonnes);
System.out.println("Json hpersonnes=" + json);
}
}
Bu sınıfın çalıştırılması sonucunda ekranda şunlar görüntülenir:
Örnekten çıkarılacak sonuçlar:
- jSON / Object dönüşümleri için gerekli olan [ObjectMapper] nesnesi: 11. satır;
- [Personne] --> jSON dönüşümü: 17. satır;
- jSON --> [Personne] dönüşümü: 20. satır;
- her iki yöntem tarafından tetiklenen [IOException] istisnası: satır 13.
6.15. [WampServer]'in kurulumu
[WampServer], bir Windows makinesinde PHP / MySQL / Apache üzerinde geliştirme yapmak için kullanılan bir yazılım paketidir. Bunu yalnızca SGBD ve MySQL için kullanacağız.
![]() | ![]() |
- [WampServer] [1] sitesinde uygun sürümü seçin [2],
- İndirilen dosya bir kurulum programıdır. Kurulum sırasında çeşitli bilgiler istenir. Bu bilgiler MySQL ile ilgili değildir. Dolayısıyla bu bilgileri göz ardı edebilirsiniz. Kurulumun sonunda [3] penceresi görüntülenir. [WampServer]'i çalıştırın,
![]() | ![]() |
- ve [4]'e dönüştürülür; [WampServer] simgesi, ekranın sağ alt köşesindeki görev çubuğuna yüklenir ve [4],
- üzerine tıklandığında [5] menüsü görüntülenir. Bu menü, Apache sunucusunu ve SGBD ile MySQL'i yönetmeye olanak tanır. Bunu yönetmek için [PhpPmyAdmin] seçeneğini kullanırız;
- böylece aşağıdaki pencere açılır,

[PhpMyAdmin]'in kullanımı hakkında çok fazla ayrıntıya girmeyeceğiz. Bu belgede nasıl kullanılacağını gösteriyoruz.





























































































