• Sonuç bulunamadı

Android akıllı telefon ve tabletlerde kullanıcı aktivitelerini izleme

N/A
N/A
Protected

Academic year: 2021

Share "Android akıllı telefon ve tabletlerde kullanıcı aktivitelerini izleme"

Copied!
70
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

T.C.

SELÇUK ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ

ANDROID AKILLI TELEFON VE TABLETLERDE KULLANICI

AKTĠVĠTELERĠNĠ ĠZLEME Ahmet ÇALIġKAN YÜKSEK LĠSANS TEZĠ

BiliĢim Teknolojileri Mühendisliği Anabilim Dalı

Nisan-2019 KONYA Her Hakkı Saklıdır

(2)
(3)
(4)

v

ÖZET

YÜKSEK LĠSANS TEZĠ

ANDROID AKILLI TELEFON VE TABLETLERDE KULLANICI AKTĠVĠTELERĠNĠ ĠZLEME

Ahmet ÇALIġKAN

Selçuk Üniversitesi Fen Bilimleri Enstitüsü BiliĢim Teknolojileri Mühendisliği Anabilim Dalı

DanıĢman: Prof. Dr. ġakir TAġDEMĠR 2019, 57 Sayfa

Jüri

Prof. Dr. ġakir TAġDEMĠR Prof. Dr. Erkan ÜLKER

Doç. Dr. Humar KAHRAMANLI

Teknolojinin ilerlemesiyle birlikte mobil cihaz kullanımında önemli bir artışın olduğu görülmektedir. Literatür taramaları sonucunda elde edilen bilgi ve sonuçlar bu yargının kesinliğini göstermektedir. Yapılan tez çalışmasında, Android işletim sistemine sahip akıllı telefon ve tablet üzerinde cihaz kullanıcılarının aktivitelerini izleyen bir uygulama geliştirilmiştir. Android işletim sisteminin açık kaynak kodlu olması, kullanılan cihaz ve kullanıcı sayısının yüksek oranlara sahip olması gibi sebeplerden dolayı, tez çalışmasında Android tercih edilmiştir. Geliştirilen uygulama sayesinde, kullanıcı güvenliği amacıyla örneğin ebeveynler çocuk takibini, şirketler ve işletmeler ise personel denetimini sağlayabilecekler, kullanıcı aktivitelerini vb. izleyebileceklerdir. Geliştirilen uygulama, yönetici ve izlenecek uygulama olmak üzere 2 ayrı akışta çalışacaktır. Android Studio, Visual Studio, SQL Server Management Studio ve Firebase teknolojileri kullanılarak uygulama geliştirilmiştir. Yönetici cihazında bulunan uygulama ile izlenen kullanıcının cihazında bulunan uygulama listesi, kullanıcının konumu ve cihazın sistem sürümü gibi cihazın temel bilgileri alınabilmektedir. Ayrıca arama geçmişi, rehberde kayıtlı numaralar, gelen giden SMS takibi, tuş vuruşları (keylogger) vb. izlemelerin yönetici tarafında bulunan Android mobil uygulama ile gözlemlenmesi sağlanmıştır. Tez çalışması kapsamında geliştirilen uygulama etik durumlar dikkate alınarak geliştirilmiş bir tür casus yazılım (spyware) uygulamasıdır. Kaynak araştırmalarında, gerçekleştirilen bu tez çalışmasının amacını destekler nitelikte sonuçlar elde edilmiştir ve öneriler sunulduğu görülmüştür. Araştırmalarda mobil cihaz kullanımının artmasıyla birlikte bazı güvenlik risklerinin de bulunabileceği, bu güvenlik risklerine karşı önlem alınması ve kullanıcı takibinin yapılması gerekliliği ifade edilmektedir. Uygulama hem sanal cihazlarda hem de gerçek cihazlar üzerinde test edilmiştir ve başarıyla çalıştığı görülmüştür.

(5)

vi

ABSTRACT

MS THESIS

USER ACTIVITY MONITORING ON ANDROID SMARTPHONE AND TABLET

Ahmet ÇALIġKAN

THE GRADUATE SCHOOL OF NATURAL AND APPLIED SCIENCE OF SELÇUK UNIVERSITY

THE DEGREE OF MASTER OF INFORMATION TECHNOLOGY ENGINEERING

Advisor: Prof. Dr. ġakir TAġDEMĠR

2019, 57 Pages

Jury

Prof. Dr. ġakir TAġDEMĠR Prof. Dr. Erkan ÜLKER

Assoc. Prof. Dr. Humar KAHRAMANLI

In parallel with the advancement of technology, there is a significant increase in the use of mobile devices. The information and results obtained as a result of the literature reviews indicate the accuracy of this increase. In this thesis, an application has been developed to monitor the activities of device users on the smartphone and tablet with Android operating system. The Android operating system is open source and has a high number of devices and users, so Android is preferred in this study. The developed application performs child activity monitoring for parents to ensure child safety. Also companies and businesses will be able to control their employees and monitor their employee's activities. The developed application will work in two different types: admin application and monitored application. In this study, the application was developed by using Android Studio, Visual Studio, SQL Server Management Studio and Firebase technologies. The admin application monitors the application list, user’s location, device systems version, etc. in the monitored device. Also this admin application monitors the phone book, call history, incoming/outgoing SMS, keystrokes (keylogger) in the monitored device. The application developed within the scope of this study is a kind of spyware application developed by considering the ethical situations. There are studies in the literature that support the purpose of this study. There may be some security risks due to increased mobile device usage. In the literature, it is stated that it is necessary to take precautions against these security risks and monitor of the users. This thesis is thought to contribute to the literature. This application developed in the study was tested on both virtual devices and real devices. This application works successfully.

(6)

vii

ÖNSÖZ

Bu tez çalışmam boyunca beni yönlendiren ve bilgilerinden faydalandığım değerli hocam Sayın Prof. Dr. Şakir TAŞDEMİR’e, çalışmaya maddi destek sağlayan Selçuk Üniversitesi Bilimsel Araştırma Projeleri Koordinasyon Birimi’ne, fikirleriyle ve süreç boyunca yardımlarıyla destek veren Sayın Arş. Gör. Elif EZEL’e ve eğitim hayatım boyunca benden her türlü maddi manevi desteklerini esirgemeyen aileme sonsuz saygı ve teşekkürlerimi sunarım.

Tez çalışması kapsamında geliştirilen uygulama ve uygulama geliştirme aşamalarında verilen bilgiler, asla yasal olmayan amaçlar için kullanılmamalı ve etik durumların dışına kesinlikle çıkılmamalıdır. Aksi durumda yazar her hangi bir sorumluluk kabul etmemektedir.

Ahmet ÇALIŞKAN KONYA-2019

(7)

viii ĠÇĠNDEKĠLER ÖZET ... v ABSTRACT ... vi ÖNSÖZ ... vii ĠÇĠNDEKĠLER ... viii ġEKĠLLER LĠSTESĠ ... xi

TABLO LĠSTESĠ ... xiii

SĠMGELER VE KISALTMALAR ... xiv

1. GĠRĠġ ... 1

2. KAYNAK ARAġTIRMASI ... 5

3. MATERYAL VE YÖNTEM... 10

3.1. Android Studio ... 10

3.1.1. SDK (Software Development Kit) ... 10

3.2. Android ... 11

3.2.1. Activity ... 12

3.2.2. Layout ... 13

3.2.3. Service ... 14

3.2.4. Intent ... 15

3.2.5. SQLite veri tabanı ... 16

3.2.6. Shared Preferences ... 16 3.2.7. AndroidManifest.xml dosyası ... 17 3.2.8. AsyncTask ... 17 3.2.9. Broadcast Receiver ... 19 3.2.10. Content Provider ... 20 3.2.11. Adapter ... 20 3.2.12. Gradle ... 20

(8)

ix

3.2.13. APK (Android Application Package) ... 21

3.2.14. Android akıllı telefon ve tablet ... 21

3.2.15. Genymotion sanal cihazı ... 22

3.3. SQL (Structured Query Language) ... 22

3.3.1. SQL Server Management Studio ... 23

3.3.2. Saklı Yordam (Stored Procedure) ... 23

3.4. Web Servis (Web Service) ... 24

3.4.1 Visual Studio 2015 ... 24

3.4.2. ASP.Net web application ... 25

3.4.3. IIS (Internet Information Services) ... 26

3.4.4. SOAP (Simple Object Access Protocol) ... 28

3.5. XML (Extensible Markup Language) ... 28

3.6. JSON (JavaScript Object Notation) ... 28

3.7. Firebase ... 28

3.7.1. Yetkilendirme (Authentication) ... 30

3.7.2. Gerçek Zamanlı Veri Tabanı (Realtime Database) ... 30

3.7.3. Bulut Mesajlaşma (Cloud Messaging) ... 31

3.7.4. Crashlytics ... 32

3.7.5. Firebase Matematiksel Analiz (Firebase Analytics) ... 33

3.8. Çoklu Ekran Desteği ... 33

3.9. Yerel (Native) Uygulama Geliştirme ... 34

3.10. Tuş Kaydedici (Keylogger) ... 36

4. UYGULAMANIN ÇALIġMASI ... 37

4.1. Uygulamaya Giriş ... 39

4.2. Uygulama Listesinin Görüntülenmesi ... 41

4.3. Telefon Rehberinin Görüntülenmesi ... 43

4.4. Arama Kayıtlarının Görüntülenmesi ... 44

4.5. SMS Geçmişinin Görüntülenmesi ... 44

4.6. Tuş Vuruşlarının Görüntülenmesi (Keylogger) ... 45

4.7. Takvim Etkinliklerinin Görüntülenmesi ... 46

4.8. Cihazda Bulunan Hesap Adlarının Listelenmesi ... 46

(9)

x

4.10. Cihaz Bilgilerinin Görüntülenmesi ve Cihaza Uzaktan Erişim ... 48

4.10.1. İzlenen cihazı uzaktan uyku moduna alma ... 49

4.10.2. İzlenen cihazda uygulama ikonunu gizleme ... 49

4.10.3. İzlenen cihaz üzerinden gizlenen uygulamayı açma ... 49

4.11. Uzaktan Gizli Fotoğraf Çekimi ... 50

4.12. Uygulama İstatistiklerinin Görüntülenmesi ... 51

5. SONUÇLAR VE ÖNERĠLER ... 52

5.1. Sonuçlar ... 52

5.2 Öneriler ... 53

KAYNAKLAR ... 55

(10)

xi

ġEKĠLLER LĠSTESĠ

Şekil 1.1. Dijital platform kullanıcı verileri ... 1

Şekil 1.2. Dijital platform Türkiye kullanıcı verileri ... 2

Şekil 1.3. Amerika ve Çin’de kullanılan mobil işletim sistemleri oranı ... 2

Şekil 3.1. Android mimarisi ... 11

Şekil 3.2. Activity yaşam döngüsü ... 13

Şekil 3.3. Android Studio tasarım katmanı geliştirme ekranı ... 14

Şekil 3.4. Service sınıfı yaşam döngüsü ... 15

Şekil 3.5. AndroidManifest.xml dosyası ... 17

Şekil 3.6. AsyncTask sınıfı metotları ve akış şeması ... 18

Şekil 3.7. Android Studio build.gradle dosyası ... 21

Şekil 3.8. Genymotion sanal cihazı ... 22

Şekil 3.9. SQL Server Management Studio ... 23

Şekil 3.10. SQL Server Management Studio Saklı Yordam oluşturma ... 24

Şekil 3.11. ASP.NET Web Uygulaması ... 25

Şekil 3.12. Web Servis (.asmx) ... 25

Şekil 3.13. IIS servislerinin açılması ... 26

Şekil 3.14. IIS Manager ara yüzü ... 27

Şekil 3.15. Visual Studio web servis yayınlama aşaması ... 27

Şekil 3.16. Örnek XML verisi ... 28

Şekil 3.17. Örnek JSON verisi ... 28

Şekil 3.18. Firebase hizmetleri ... 29

Şekil 3.19. Firebase yetkilendirme ... 30

Şekil 3.20. Firebase gerçek zamanlı veri tabanı ... 31

Şekil 3.21. Firebase bulut mesajlaşma ... 32

Şekil 3.22. Firebase Crashlytics ... 32

Şekil 3.23. Firebase Panel ... 33

Şekil 3.24. Uygulama geliştirme ortamı values klasörleri ... 34

Şekil 4.1. Uygulama akış şeması ... 38

Şekil 4.2. Uygulama giriş ekranı ... 39

Şekil 4.3. Uygulama tipinin seçimi ... 40

Şekil 4.4. Uygulama menüsü ... 41

(11)

xii

Şekil 4.6. İzlenen cihazda uygulama kilit ekranı ... 42

Şekil 4.7. Telefon rehberi görüntüleme ve numara engelleme ... 43

Şekil 4.8. Arama kayıtlarının görüntülenmesi ... 44

Şekil 4.9. SMS geçmişi görüntüleme ... 45

Şekil 4.10. Tuş kaydedici (Keylogger) ... 45

Şekil 4.11. Takvim etkinliklerinin görüntülenmesi ... 46

Şekil 4.12. Cihazda bulunan hesap listesinin görüntülenmesi ... 47

Şekil 4.13. Gün içerisinde kayıt altına alınan konum bilgileri ... 47

Şekil 4.14. Cihaz bilgilerinin görüntülenmesi ... 48

Şekil 4.15. Gizli fotoğraf çekimi ve fotoğrafların görüntülenmesi ... 50

Şekil 4.16. Uygulama istatistiklerinin görüntülenmesi ... 51

(12)

xiii

TABLO LĠSTESĠ

Tablo 3.1. AsyncTask sınıfı metotları ve işlevleri ... 19 Tablo 3.2. Mobil uygulama geliştirme platformlarının avantajları ve sınırlılıkları ... 35

(13)

xiv

SĠMGELER VE KISALTMALAR Kısaltmalar

AES : Advanced Encryption Standard

ANR : Application Not Responding

API : Application Programming Interface

APK : Android Package

AVD : Android Virtual Device

BBM : Blackberry Messenger

CSS : Cascading Style Sheets

DP : Density Pixels

GPS : Global Positioning System

GSM : Global System for Mobile Communications

HTML : Hypertext Markup Language

HTTP : Hyper Text Transfer Protocol IIS : Internet Information Services

JDK : Java SE Development Kit

JSON : JavaScript Object Notation

ID : Identification

IDE : Integrated Development Environment

IP : Internet Protocol

OS : Operating System

PDA : Personal Digital Assistant SDK : Software Development Kit

SMS : Short Message Service

SOAP : Simple Object Access Protocol

SQL : Structured Query Language

UI : User Interface

URI : Uniform Resource Identifier USB : Universal Serial Bus

UX : User Experience

(14)

1. GĠRĠġ

Bilgisayar teknolojisindeki hızlı gelişmelere paralel olarak mobil teknolojilerin kullanımında önemli bir artış bulunmaktadır. Özellikle endüstri 4.0 ile birlikte nesnelerin interneti, görüntü işleme, yapay zeka, siber güvenlik vb. alanlarda mobil teknolojilerin kullanımı, günümüzdeki önemini artırmıştır.

Akıllı cihaz kullanımında meydana gelen önemli artışın sebepleri arasında; mobil cihazın her ortamda kullanılabilmesi, internetin yaygınlaşması ve erişimin kolaylaşması, kullanıcıların ihtiyaçlarını hızlı karşılama ve işlemlerini daha rahatça gerçekleştirme isteği gösterilebilir. Kullanıcı isteği ve ihtiyacında meydana gelen artışlar ise mobil uygulama sayısını arttırarak uygulama pazarının büyümesine sebep olmuştur.

Dijital pazarlama ajansı olan “We Are Social”, araştırmalar ve istatistikleri içeren “İnternet ve Sosyal Medya Kullanıcı İstatistikleri” adlı raporunda (2019b), mobil cihaz kullanımı hakkında detaylı bilgiler vermektedir. Raporda Ocak ayı 2019 yılı için dünya üzerinde beş milyardan fazla insanın (yaklaşık %67) mobil cihaz kullandığı belirtilmektedir.

Rapordan alınan Şekil 1.1’de dünya genelinde mobil cihaz kullanımındaki veriler gösterilmiştir. “We Are Social” dijital ajansının Türkiye için yaptığı araştırma sonucu Şekil 1.2’de gösterilmiştir.

(15)

ġekil 1.2. Dijital platform Türkiye kullanıcı verileri (WeAreSocial, 2019a)

Kantar Worldpanel’in 2019 yılı araştırmalarına göre ise en büyük iki pazar Amerika ve Çin’de, mobil işletim sistemleri arasında kullanımı en yüksek işletim sistemi Android işletim sistemidir (KantarWorldPanel, 2019). Kantar Worldpanel’in resmi sitesinde interaktif olarak işletim sistemlerinin kullanım oranları görüntülenebilmektedir. Şekil 1.3’te ise en büyük iki pazar olan Amerika ve Çin için 2019 yılı Mart ayında Android işletim sistemi kullanım oranları gösterilmiştir.

(16)

Raporlarda görüldüğü gibi, Android işletim sisteminin kullanımı yüksek olduğu için bu çalışmada Android işletim sistemi tercih edilmiştir.

Mobil uygulama pazarının büyümesiyle birlikte mobil işletim sistemleri arasında rekabet artmıştır ve şirketler mobil uygulama pazarındaki en büyük payı almak için yarış halinde bulunmaktadırlar. Mobil işletim sistemleri arasında ise Android, iOS (iPhone OS), Windows Phone, Symbian, BlackBerry OS, Web OS, MeeGo ve Bada işletim sistemleri gösterilebilir.

Mobil cihazların kullanımı çocuk ve gençler başta olmak üzere her yaştan kullanıcılar için azımsanmayacak bir orandadır. İnternete olan özgür ve rahat ulaşım, mobil cihaz kullanımının artması, yaygınlaşması hayatı kolaylaştırmakla beraber bazı olumsuzlukları da getirmiştir. Bu tür cihazlar için geliştirilen uygulamalardaki hızlı artışla beraber, uygulamalardaki cazibe bazen kullanıcıları olumsuz etkileyebilmektedir. Kullanıcılar bazen uygulamanın etkisinde fazlasıyla kalabilmekte, bundan hem psikolojik hem de sosyal olarak etkilenebilmektedir. Ayrıca zamanı etkin ve verimli kullanamamakta, kendi birincil sorumlu oldukları işlerinin dışında bu tür uygulamalarla vakit geçirebilmektedirler. Hatta uygulamalardaki sınır tanımamazlık kişilerin sağlıklarını bozabilmekte ve bundan dolayı kişilerde davranış bozukluğuna sebep olabilmektedir. Bu gibi durumlarda özellikle çocuk yaştaki kullanıcıların olumsuzluklardan daha az etkilenebilmeleri için ebeveynleri tarafından çocukların takibinin yapılması gerekmektedir. Çocuk yaştaki ve yetkinliği olmayan kullanıcıların kullandığı uygulamalar, gittiği yerler, konuştuğu, mesajlaştığı kişiler vb. ebeveynler tarafından bilinmek ve çocukların sanal âlemdeki güvenliği için kontrol edilmek istenmektedir. Ayrıca bazı down sendromlu bireyler, alzaymır hastaları vb. gibi kullanıcılar düşünüldüğünde, bu tür mobil uygulamalar önemini arttırmaktadır. Yalnızca ebeveynler için değil, ticari veya ticari olmayan şirketler ve işletmeler vb. gibi farklı amaçlarla çalışan kurumlar, çalışanlarının iş verimliliğini arttırmak ve uygun bir denetim sağlamak amacıyla, cihazda gerçekleştirilen kullanıcı aktivitelerinin izlendiği programlara ihtiyaç duyabilmektedirler. Örneğin şirketlerin personellerine tahsis ettiği mobil cihazı, personel kendi görevi dışında veya şirket politikaları haricindeki amaçlarla kullanması gibi durumlarda, yöneticiler bilgi sahibi olmak isteyebilir. Bu tür uygulamalar sayesinde yöneticiler, çalışanlarının cihaz üzerinde gerçekleştirdiği aktiviteleri denetleme imkânına sahip olabilmektedir.

Bu tez çalışmasında geliştirilen Android uygulaması sayesinde; izlenecek cihazda bulunan uygulamaların listesi, kullanıcının konumu ve cihazın sistem sürümü

(17)

gibi cihazın temel bilgileri alınabilmektedir. Ayrıca arama kayıtları, rehberde kayıtlı numaralar, gelen giden SMS takibi, kullanıcının tuş vuruşları (keylogger), takvim etkinlikleri, gizli fotoğraf çekimi, en çok kullanılan uygulamalar vb. izlemelerin yönetici tarafında bulunan Android mobil uygulama ile gözlemlenmesi sağlanmıştır. Bu amaçla uygulama 2 farklı akışta (yönetici ve izlenen uygulama) çalışmaktadır. İzlenen cihaza ait bilgiler sunucuda bulunan veri tabanına kaydedilmektedir. İnternetin olmadığı durumlarda izlenen cihaza ait bilgiler cihaz içerisinde yerel olarak depolanmaktadır. Böylelikle çalışmada geliştirilen uygulamanın çevrim dışı çalışma (offline) özelliği bulunmaktadır.

Güvenliğin ve denetimin günümüzdeki ihtiyacı düşünüldüğünde ve hedeflenen kitlenin büyüklüğü göz önüne alındığında, bu tür uygulamaların ve çalışmaların önemi ortaya çıkmaktadır. Kötü niyetle yazılan casus yazılımların aksine, bu tez çalışması kapsamında geliştirilen uygulama, tamamen kullanıcı güvenliğini ve denetimini ön planda tutmak amacıyla geliştirilmiştir.

“Kaynak Araştırması” bölümünde, yapılan literatür taramasındaki çalışmalara değinilmiştir. Ayrıca bu tez çalışması kapsamında geliştirilen uygulamanın, literatürde bulunan çalışmalardan farkı bölümün sonunda anlatılmıştır. “Materyal ve Yöntem” bölümünde, tez çalışmasında izlenen yöntem, kullanılan materyaller hakkında bilgilere yer verilmiştir. “Uygulamanın Çalışması” bölümünde, bu tez çalışmasında geliştirilen uygulamanın çalışma aşamaları ve özellikleri, ekran görüntüleri ile birlikte detaylı olarak gösterilmiştir ve uygulamanın çalışma akışı anlatılmıştır. “Sonuçlar ve Öneriler” bölümünde, uygulamanın başarıyla çalıştığından ve uygulamanın kullanıldığı durumlarda, kullanıcıya sağlayacağı düşünülen avantajlardan bahsedilmiştir. Verilen öneriler ile uygulamaya eklenebilecek yeni özelliklere değinilmiştir.

(18)

2. KAYNAK ARAġTIRMASI

Kaynak taraması süresince, akademik çalışmalarda kullanıcı denetiminin ve çocuk güvenliğinin sağlanması amacıyla dikkat edilmesi gereken noktalara çok fazla önem verildiği görülmüştür.

Susinthra ve Praveena (2019) tarafından yapılan çalışmada, çocukların güvenliği için ebeveynlerin endişe duyduğundan bahsedilmiştir. Bu doğrultuda denetimi sağlamak amacıyla mobil cihazlar üzerinden çocuk konum takibinin gerçekleştirildiği bir uygulama geliştirilmiştir.

Dalilah ve ark. (2018) tarafından yapılan çalışmada, ebeveynler için çocuklarının güvenliğini ve takibini sağlamak amacıyla Android işletim sisteminde çalışacak bir uygulama geliştirilmiştir. Bu uygulama sayesinde ebeveynler çocuklarının cihaz üzerindeki aktivitelerini izleyebilmektedir. Çalışmada geliştirilen uygulama sayesinde konum bilgileri, arama ve SMS kontrolü yapılabilmektedir.

Sridevi ve Shivani (2018) tarafından yapılan çalışmada, çocuk güvenliğinin ve denetiminin önemi anlatılmıştır. Bu doğrultuda çocukların uzaktan konum takibinin yapıldığı bir mobil uygulama geliştirilmiştir.

Lobo ve Alvares (2018) yaptıkları çalışmada, Android işletim sisteminde GPS temelli konum takibi için uygulama geliştirmişlerdir. Geliştirdikleri uygulama sayesinde, ebeveynlerin, çocuklarının hangi konumda bulunduklarını bilmelerine yardımcı olabileceği belirtilmiştir.

Kiraz ve Doğru (2017) tarafından çalışmada, Android işletim sistemi için geliştirilen mobil uygulamaların güvenlik açısından analizi yapılmıştır. Android işletim sistemine sahip cihazlar için geliştirilen kötücül yazılımların (malware) markete yüklenirken, yazılım için detaylı kötücül yazılım tespiti yapılmadığına dikkat çekilerek, kötücül yazılım tespiti için izlenebilecek yöntemlerin avantaj ve dezavantajları gösterilmiştir.

Bhosale ve ark. (2016) tarafından yapılan çalışmada, Android için tuş vuruşlarını kaydeden bir uygulama geliştirilmiştir. Tuş kaydedici (keylogger) amacı gören bu uygulama kullanıcının cihaz içinde tuş vuruşlarını oluşturduğu log dosyasına kaydetmektedir.

Sarı (2016) tarafından yapılan çalışmada, şirketler için mobil cihaz yönetimi ve kontrol maliyetini düşürmek amacıyla sistem geliştirilmiştir. Şirketlerin mobil cihazlara

(19)

olan ihtiyacına dikkat çekilmiş, artan mobil cihazlarla birlikte yönetim ve kontrol zorluğundan bahsedilmiştir. Bu nedenle tüm mobil cihazların tek bir yönetim merkezinden kontrolünü sağlayan uygulama geliştirilmiştir. Sunucu (server) ve istemci (client) tarafı olmak üzere ayrı ayrı uygulama geliştirilmiştir. Sunucu tarafındaki uygulama Java programlama dili ile geliştirilmiştir. İstemci tarafı ise Android ile geliştirilmiş, Android işletim sistemine sahip cihazlar üzerinde çalışmaktadır. Bağlantı güvenliği için AES şifreleme algoritması kullanılmıştır.

Jagtap ve ark. (2015) tarafından yapılan çalışmada, kullanıcının bazı aktivitelerini izlemek amacıyla Android işletim sistemine sahip cihazlar için bir tür casus yazılım uygulaması geliştirilmiştir. Kullanıcıya ait SMS ve arama kayıtları takip edilmektedir. Konum bilgileri ise yöneticiye mail olarak gönderilmektedir.

Dandıl ve ark. (2015) tarafından yapılan çalışmada, yaralanma, kaza veya hayati tehlike gibi acil durumlarda ilk yardımın hayati önemine dikkat çekilmiştir. İlk yardımı yapacak kişiye tıbbi olarak yardımın nasıl yapılacağı konusunda yardımcı olmak amacıyla Android işletim sistemlerine sahip cihazlar için uygulama geliştirilmiştir. Ayrıca ilk yardımın daha hızlı yapılabilmesi ve ilgili birime hızlı bir şekilde aktarılabilmesi için GPS kullanılarak konum tespiti yapılmıştır. Öneri olarak ilerde gerçekleştirilebilecek çalışmalarda uygulamaya ilk yardım çantasında bulunacak gerekli malzemeler ve bu malzemelerin kullanımıyla ilgili detaylı bilgilerin verilebileceği belirtilmiştir.

Birey takibini gerçekleştirmek amacıyla Batmaz ve ark. (2015) tarafından yapılan çalışmada, GPS ile elde edilen konum bilgileri ve ivmeölçer sensörü ile elde edilen verilerle kişinin yürüme, düşme gibi vücut etkinliklerinin tespiti yapılmaktadır. Geliştirilen web ara yüzü sayesinde ise aktiviteler grafiksel olarak takip edilirken, bulunduğu konuma ait sıcaklık ve nem bilgisi gibi yararlı bilgilerde gösterilmektedir. Çalışma sonunda verilen öneride ise uygulamaya eklenecek yeni özellikler ile araç takip sisteminin de yapılabileceği belirtilmektedir.

Wang ve Alshboul (2015) tarafından yapılan çalışmada, mobil cihazların hassas verileri taşıyabilmesiyle birlikte siber suçlar için kolay hedef haline geldiği belirtilmiştir.

Bayıroğlu ve Ayan (2014) tarafından çocuk güvenliği ve takibi amacıyla yapılan çalışmada, GPS temelli konum takibi yapılmıştır. Artan çocuk güvenliğine dikkat çekilerek GPS sistemi ve baz istasyonları sayesinde en az hata payıyla kullanıcının bulunduğu konumu veren bir sistem geliştirilmiştir. Kullanıcının konumu daha önce

(20)

tanımlanan numaraya gönderilmektedir ve kullanıcının konumu geliştirilen web ara yüzü ile görüntülenebilmektedir. Web ara yüzünde ebeveyn hem gerçek zamanlı hem de geçmişe dönük çocuk konumunu görüntüleyebilmektedir. İstediği gün ve saate bölge sınırlaması koyarak, sınır dışına çıkıldığında mail ile bilgilendirilmektedir. Sonuç olarak sistem çocuk takibi amacıyla geliştirildiği için acil durum planı eklenebileceği, sistemin daha da güçlendirilebileceği belirtilmiştir.

Acar (2014) tarafından zararlı yazılım tespiti üzerine inceleme yapılmıştır. Çalışmada mobil işletim sistemlerinden özellikle Android işletim sisteminde çok yüksek oranda güvenlik tehdidin bulunduğu belirtilmiştir.

Al-Mazloum ve ark. (2013) yaptıkları çalışmada, ebeveynlerin çocuklarının kaçırılmasına dair endişelerinden bahsedilmiştir. GPS tabanlı gerçek zamanlı konum takibinin yapıldığı bir uygulama geliştirilmiştir. Geliştirilen uygulama çocuk cihazında ve ebeveyn cihazında bulunmaktadır. Uygulama ile ebeveynler, çocuklarının konumunu harita üzerinde gerçek zamanlı olarak takip edebilmektedir.

Şimşek ve ark. (2013), konum tespitini gerçekleştirmek için yaptıkları çalışmada, arama yapılan kişiye, kullanıcının konum bilgileri SMS ile gönderilmiştir. Uygulamada yapılan her arama veya çağrı son kayıt olarak kaydedilmektedir. Uygulama açıldıktan sonra konum bilgilerini göndermek için onay verilmesi gerekmektedir. Onay işlemi yapıldıktan sonra son aranan numaraya konum bilgileri gönderilmektedir. Çalışmanın sonuç bölümünde ise kapalı mekânlarda GPS konum tespitinin geç yapılması, geç iletilen SMS, güçlü internet bağlantısı isteği ve gelen konum bilgilerinin harita üzerinde geç gösterilmesi gibi sorunlarla karşılaşılabileceği belirtilmiştir. Ayrıca şirketler için personel performans artışı, zaman ve maliyet tasarrufu sağlayabileceği için çalışmanın geliştirilerek bu alanda da kullanılabileceği önerilmiştir.

Qadeer ve ark. (2012), konum temelli kullanıcı takibini gerçekleştirdikleri çalışmada, GPS ile konumu tespit edilen kullanıcının konum bilgileri SMS ile kullanıcının ailesi veya arkadaşlarıyla paylaşılmaktadır. Sonucunda verilen öneriler de ise daha iyi kullanıcı ara yüzü ve yeni algoritmalar geliştirilerek konum doğruluğunun arttırılabileceği belirtilmektedir.

Taşan (2011) tarafından mobil konumlandırma ve izleme amacıyla iOS platformu için yapılan çalışmada, taksi iletişim sistemi örnek alınarak konum bilgileri ile mobil takip sistemi tasarlanmıştır. Uygulama üç ayrı bileşenden oluşmaktadır; İlk bileşen taksi tarafında var olan, taksi konum bilgileri ve taksici tarafından gönderilen

(21)

durum bilgilerini veri tabanına belli aralıklarla gönderen uygulamadır. İkinci bileşen ise müşteri tarafında çalışacak olan, müşterinin bulunduğu konuma göre yakın bölgede bulunan taksileri gösteren ve uygun duruma göre müşterinin taksiyi bulunduğu konuma çağırmasını sağlayan uygulamadır. Üçüncü bileşen, sistem yöneticilerinin kullanacağı, taksicilerin sisteme giriş yapmasını sağlayan, taksici performansını gösteren bir web uygulamasıdır. Sonuç olarak kapalı mekânlarda konumda sapmaların meydana geldiğinden bahsedilmiştir. Öneri olarak, örneğin nakliyat veya güvenlik takip sistemleri gibi çalışan takibi yapacak birçok işletmede bu modelin kullanılabileceği belirtilmiştir.

Nakıp (2010), mobil cihaz takibi için gerçekleştirdiği çalışmada, büyük şehirlerde artan güvenlik problemine dikkat çekilerek, kişinin konumunun tespit edilmesinin öneminden bahsedilmiştir. Ayrıca GSM operatörlerinin standart bir telefonun takibi için baz istasyonuna olan açısı ve uzaklığı gibi bilgilerle kullanıcı takibi yaptığı fakat bu yöntem sayesinde elde edilen bilginin çok hassas olmadığı, kişinin bulunduğu yaklaşık bir bölgeyi işaret ettiğinden bahsedilmiştir. Çalışmanın çocuk takibinde veya kurumsal şirketlerin sahada müşteriye yakın ekibin gönderilmesi gibi durumlarda, geliştirilerek ve GPS alıcısı sayesinde konum doğruluğu arttırılarak kullanılabileceği belirtilmiştir.

Beşel (2010), konum takibi amacıyla yaptığı çalışmada, araca yerleştirilen PDA cihazında çalışan yazılım, GPS ile alınan konum bilgilerini merkeze aktarmaktadır ve bu sayede merkezde aracın takibi yapılmaktadır.

Sağıroğlu ve Bulut (2009) tarafından mobil ortam haberleşme güvenliği hakkında yapılan çalışmada, saldırı yöntemi, veri iletişimi ortamını dinleme gibi mobil güvenlik tehditleri incelenmiş, alınabilecek önlemler ve kötücül yazılımlar hakkında bilgiler verilmiştir.

Kaynak taramaları sonucunda, geliştirilen uygulama ve yapılan çalışmalarda, kişilerin güvenlik ve denetim konusundaki hassasiyetleri görülmüştür. Bu nedenle uzaktan kullanıcı denetimini ve takibini gerçekleştirmek amacıyla mobil uygulama geliştirilmiştir.

Bu çalışmada, benzer alanlarda çalışma yapmak isteyen araştırmacılara, mobil uygulama geliştiricilerine fikir verebilecek bilgilerin bulunduğu ve böylelikle bu çalışmanın literatüre katkı sağlayabileceği düşünülmektedir.

Kaynak taraması boyunca bilgi güvenliğini tehdit eden siber saldırıların oldukça fazla olduğu ve Android için geliştirilen kötücül uygulamaların sayısında artış olduğu

(22)

görülmüştür. Fakat kötü niyetli geliştirilen bu uygulamaların aksine çocuk takibinin sağlanacağı, şirket ve işletmeler için personel denetiminin yapılacağı yararlı bir uygulama geliştirilmiştir ve bunun üzerine çalışma yapılmıştır.

Yazarın bilgisine göre, benzer akademik çalışmalarda geliştirilen uygulamalarda, genellikle GPS ile konum tespiti, SMS ve arama kayıtlarını izleme gibi sınırlı özelliklerin bulunduğu görülmüştür. Bu çalışmada kullanıcıyı izleme özelliklerinin sayısı arttırılmıştır. “Uygulamanın Çalışması“ bölümünde bu özellikler detaylarıyla anlatılmıştır.

(23)

3. MATERYAL VE YÖNTEM

Uygulama yerel (native) olarak Android işletim sistemine sahip cihazlar için geliştirilmiştir. Uygulama geliştirme ortamında Android Studio, Visual Studio (öğrenci lisanslı), Firebase ve SQL Server Management Studio (öğrenci lisanslı) teknolojileri kullanılmıştır. Uygulama sanal ve gerçek cihazlar üzerinde test edilmiştir. Çalışmayla ilgili literatürde geçen genel kavramlar ve detayları, geliştirme ortamının kurulum aşamaları, gerekli materyaller ve kullanımları bölüm içinde alt başlıklar halinde anlatılmıştır.

3.1. Android Studio

Android Studio, IntelliJ IDEA tabanlı bir IDE olarak Android uygulama geliştirme amacıyla kullanılmaktadır. Android Studio üzerinde geliştirme yapabilmek için JDK ve SDK kurulumlarının yapılması gerekmektedir.

Android Studio, referansta (Android, 2018a) belirtilen adresten ücretsiz olarak indirilerek kurulabilir.

Android Studio, birçok farklı Android cihaza uygulama geliştirmeyi hızlandıran araçlar bulundurmaktadır. Gradle sayesinde proje geliştirme aşamasında esneklik sağlayabilmektedir. Ekran çözünürlüğü gibi farklılıkları bulunan cihazlar için uygun APK çıktısı verebilme özelliğine sahiptir. Kodu tamamlama, kod analizi yapma, kodun yeniden düzenlenebilmesi gibi geliştirme aşamasında gerçekleştirilen işlemleri oldukça hızlı yapabilmektedir. Hızlı kod yazımı için kod şablonları bulunmaktadır. Ayrıca versiyon kontrol sistemleri ile birlikte çalışabilmek için entegre edilmiş özellikler bulunmaktadır.

3.1.1. SDK (Software Development Kit)

Android Studio kurulumunun ardından uygulama geliştirmek için SDK kurulumlarının da tamamlanması gerekmektedir. Uygulama geliştirebilmek için SDK içerisinde gerekli araçlar bulunmaktadır. SDK içerisinde;

 Android API’ler,  Emulatör,

(24)

 Sanal Cihaz Yöneticisi,  Geliştirme Araçları,  Dokümantasyon,

 Uygulama geliştirmeye yardımcı örnek kodlar bulunmaktadır.

Android Studio kurulum aşamasında bazı özellikler varsayılan olarak kurulmaktadır fakat uygulama geliştirmek için yeterli değildir. Bu sebeple SDK Manager sayesinde gerekli indirme işlemi yapılmak zorundadır.

3.2. Android

Android, mobil cihazlar için tasarlanmış açık kaynak kodlu bir işletim sistemidir (Narman, 2013). Linux tabanlı, mimarisi oldukça kapsamlı bir sistemdir. Android’in resmi sitesinde geliştiriciler için sunduğu Android mimari yapısı Şekil 3.1’de gösterilmiştir.

(25)

Open Handset Alliance (OpenHandsetAlliance, 2018) tarafından 2007 yılında kurulan Android, Linux üzerinde inşa edilmiş bir sistemdir. Basitçe Android şu üç bileşenden oluşmaktadır; (Meier, 2013)

 Mobil cihazlar için ücretsiz, açık kaynak bir işletim sistemi.

 Mobil uygulamalar oluşturmak için bir açık kaynak geliştirme platformu.  Android işletim sistemini ve bu işletim sistemi için oluşturulmuş yazılımlarla

çalışan cihazlar, özellikle mobil telefonlar.

Android uygulama geliştirebilmek için temel anlamda Java programlama bilgisinin bulunması geliştiricinin yararına olacaktır.

Android programlamada kullanılan ve bu çalışmada adı geçen sınıf ve kavramlar Android bölümünün alt başlıkları halinde anlatılmıştır.

3.2.1. Activity

Android işletim sistemi bulunan cihazlarda kullanıcının etkileşime girdiği ekranların temsil edildiği sınıflardır. Geliştiricinin tasarladığı ekranlarda bulunan bileşenlerin (Button, TextView, EditText, ListView vb.) işlevsel bir şekilde kullanılmasını sağlayan sınıflar Activity sınıflarıdır.

Oluşturulmuş Activity sınıfını kullanabilmek için AndroidManifest.xml dosyasında tanımlamak gerekmektedir. Bu dosya içinde belirtilmeyen Activity sınıfı uygulama içerisinde kullanılamayacaktır. Hatta kullanıcı ile etkileşime girildiğinde kullanıcıya hata verecektir. Bunun için Activity sınıfının tanımlandığından emin olmak gerekmektedir. AndroidManifest.xml dosyasında tanımlanmış Activity sınıfı, uygulama çalıştırıldığında başlangıç olarak kullanıcıya sunulacak ekran ise <intent-filter> etiketi ile başlangıç olduğu belirtilmelidir.

Activity sınıfları ile tasarımların yapıldığı layout klasöründe bulunan XML dosyaları ilişkilendirilmektedir. XML dosyalarında oluşturulan bileşenlerin ID’leri ile bağlantı kurularak, bileşenlerin hangi işlemleri yapması gerekiyorsa Activity sınıfı içerisinde bu işlemler gerçekleştirilmektedir.

Activity sınıflarına ait bir yaşam döngüsü bulunmaktadır. Kullanıcıya sağlam temele sahip bir uygulama sunabilmek için Activity sınıfının yaşam döngüsünü iyi anlamak ve içinde bulunan tüm metotlara hâkim olmak gerekmektedir. Hangi metot hangi şartlarda ve durumlarda kullanılıyor buna dikkat edilerek uygulama geliştirmek büyük fayda sağlayacaktır.

(26)

Android’in geliştiriciler sitesinde belirttiği Activity yaşam döngüsü Şekil 3.2’de gösterilmiştir.

ġekil 3.2. Activity yaşam döngüsü (Android, 2018c)

3.2.2. Layout

Android uygulama geliştirme aşamasında kullanıcıya sunulacak ekran tasarımları res/layout klasörü içerisinde XML dosyaları ile yapılmaktadır. Uygulamada kullanılacak bileşenlerin ekranda nasıl bir görünüm oluşturacağı burada belirlenir. Geliştiriciye çeşitli layout türleri sunulmaktadır.

RelativeLayout, LinearLayout sıkça kullanılan tasarım katmanı (layout) türleridir. Geliştiricinin tercihine göre uygun tasarım katmanını kullanmak kodlamada hız sağlamaktadır. Uygulama içerisinde tasarım katmanı dosyalarının işlevselliği Activity sınıfları sayesinde olmaktadır. Bu nedenle Activity sınıfları ve XML dosyaları

(27)

arasında bağlantı kurulmaktadır. Şekil 3.3’te Android Studio ortamında tasarım katmanı geliştirme ekranı gösterilmektedir. “Selcuk Üniversitesi” olarak gösterilen TextView ve Button bileşenlerinin üzerinde bulunduğu alan tasarım katmanı (layout) olarak adlandırılmaktadır.

ġekil 3.3. Android Studio tasarım katmanı geliştirme ekranı

3.2.3. Service

Uygulamalarda kullanıcının gerçekleştirdiği işlemleri etkilemeyen, arka planda hedeflenen işlemleri gerçekleştiren sınıflardır (Caliskan ve Tasdemir, 2018). Android’de Service herhangi bir XML dosyasıyla ilişkilendirilmez. Ara yüzü bulunmayan, veri tabanı işlemlerinde kullanılabilen, internet üzerinden gelebilecek bildirimlerin kontrolünü yapabilen veya uygulama kapansa bile arka planda belirli aralıklarla işlem yapılmasını sağlayan Android sınıflarıdır. Yapılan işlemler kullanıcıya belli edilmeden gerçekleştirilir. Android sistemi için Activity sınıflarına göre Service

(28)

sınıfı öncelikleri daha üst seviyededir. Örneğin cihazda oluşabilecek herhangi bir performans probleminde Activity sınıfları Service sınıflarından daha önce kapatılır.

Activity sınıfları ile Service sınıfları arasında iletişim kurmak gerekebilir. İletişim kurmayı sağlayan birden çok yöntem bulunmaktadır;

 Intent kullanarak iletişim gerçekleştirme.

Yayın alıcılar (broadcast receiver) kullanarak iletişim gerçekleştirme.

Oluşturulan Service sınıfı AndroidManifest.xml dosyasında tanımlanmalıdır. Şekil 3.4’te Android’in resmi sitesinde sunduğu Service sınıfının yaşam döngüsü gösterilmektedir.

ġekil 3.4. Service sınıfı yaşam döngüsü (Android, 2018c)

3.2.4. Intent

Android uygulamalarında birden çok Activity veya Service bulunabilir. Intent, Activity’ler arası geçiş, farklı bir uygulamaya geçiş veya Service başlatma gibi durumlarda kullanılan nesnelerdir.

(29)

Uygulamanın yapmak istediği herhangi bir işte, yapılacak işin amacını belirtmek için intent kullanılır. Açık (explicit) ve kapalı (implicit) olmak üzere iki çeşit intent türü vardır. Açık intent, belirli bir bileşenin başlatılması için kullanılırken (Activity sınıfları arası geçiş vb. gibi), kapalı intent ise yapılması gereken amacın gerçekleşmesi (Fotoğraf çekmek, Tarayıcı açmak gibi) için yeni bir bileşenin başlatılmasında kullanılır.

3.2.5. SQLite veri tabanı

Açık kaynak kodlu olan SQLite Android cihazlarda veri tabanı işlemlerini gerçekleştirebilmek için kullanılan ilişkisel veri tabanı yönetim sistemidir. Kod yapısının hafifliği, SQL komutlarını çalıştırabiliyor olması, farklı programlama dillerinde de kullanılabiliyor olması ve kapasitesi düşük cihazlarda da verimli çalışabiliyor olması sebebiyle tercih edilmektedir.

Uygulama geliştirme aşamasında SQLiteOpenHelper (Android, 2018d) sınıfı ile işlemler gerçekleştirilebilmektedir. SQLite veri tabanı işlemleri için kullanılabilecek veri tipleri ise şunlardır;

 Text  Numeric  Integer  Real  None

SQLite, “select”, “insert”, “delete” ve “update” gibi temel SQL işlemlerini hem kendine özgü SQLite metotlarıyla hem de SQL cümlecikleriyle gerçekleştirebilmektedir.

Android Studio veri tabanı işlemleri için henüz görsel bir ara yüz sunmadığı için, oluşturulan tablo ve içerikleri Firefox Mozilla tarayıcısında bulunan SQLite Manager eklentisi ile görsel olarak kontrol edilebilme imkânı da bulunmaktadır.

3.2.6. Shared Preferences

Android işletim sisteminde uygulama geliştirme aşamasında basit verilerin saklanmasında kullanılır. Küçük ve basit veriler saklamak gerektiğinde SQLite

(30)

kullanımı yerine Shared Preferences kullanımı daha uygundur. Anahtar-Değer (Key-Value) prensibiyle çalışmakta olan Shared Preferences ile saklanan veriler uygulama kapandığında bile silinmemektedir. Uygulama tekrar açıldığında anahtar değerine göre veriler kullanılabilmektedir.

3.2.7. AndroidManifest.xml dosyası

Android uygulama geliştirme ortamında projenin ana dizininde bulunan, uygulamanın önemli bilgilerini tutan, uygulamalarda kullanılacak izinlerin belirtildiği, uygulama için bulunması zorunlu bir XML dosyasıdır. Örneğin Activity ve Service tanımlamaları bu dosya içerisinde yapılmaktadır. Şekil 3.5’te en basit haliyle AndroidManifest.xml dosyası gösterilmiştir.

ġekil 3.5. AndroidManifest.xml dosyası

3.2.8. AsyncTask

Android uygulaması geliştirirken, ana iş parçacığının (main thread) çok meşgul edilmemesi gerekmektedir. Çünkü Android kullanıcı ara yüzü tekli iş parçacığı modeli (single thread model) mantığında çalışmaktadır. Android uygulaması çalıştığında,

(31)

sistem tarafından ana iş parçacığı adında bir tane iş parçacığı (thread) oluşturulur. Tüm UI işlemleri bu iş parçacığının sorumluluğundadır. Eğer ana iş parçacığının kullanımında, ana iş parçacığını çok meşgul edecek işlemler yapılırsa, uygulama cihazda performans sorunları yaşayacaktır. Veri tabanı sorgusu, internet erişimleri veya harici depolamadan okuma gibi uzun işlemler sadece ana iş parçacığı üzerinde yapılırsa, işlemler gecikeceği için UI işlenemez hale gelecektir. Örneğin düğme (button) kullanılamaz halde kitlenmiş olarak kullanıcıya gözükecektir. Belli bir süre içinde işlemler gerçekleşmezse, sistem tarafından kullanıcıya ANR uyarısı verilecektir.

ANR uyarısının önüne geçmek için veya işlemler gerçekleşirken ana iş parçacığını çok meşgul etmemek için çoklu iş parçacığı (multithreading) yöntemi kullanılması gerekmektedir. Uzun zaman harcayan farklı işlemler için yeni iş parçacıkları oluşturularak işlemler bu iş parçacıkları üzerinde gerçekleştirilmeli ve daha sonra UI işlemleri ana iş parçacığı üzerinde yapılmalıdır. Android güvenli iş parçacığı yönetimi (thread-safe) özelliğinde olmadığı için iş parçacıkları kullanılırken çok dikkatli olunması gerekmektedir.

Android 1.5 ile birlikte Android, kendine özgü bir AsyncTask adında iş parçacığı sınıfını geliştiricilere sunarak, farklı bir iş parçacığı ile ana iş parçacığını meşgul etmeden işlemlerin gerçekleşmesini ve UI güncellemesi gerekiyorsa ana iş parçacığı ile haberleşmesini sağlamaktadır. AsyncTask sınıfına ait metotlar ve akış şeması Şekil 3.6’da gösterilmiştir.

(32)

AsyncTask sınıfına ait metotlar ve işlevleri Tablo 3.1’de gösterilmiştir.

Tablo 3.1. AsyncTask sınıfı metotları ve işlevleri

onPreExecute() AsyncTask sınıfı oluştuktan sonra ilk

çalışacak metottur. Ön tanımlamalar burada yapılabilir.

onProgressUpdate() Yapılan işlem sırasında kullanıcıya

İlerleme(Progress) dialog ekranı gösterilmek istendiği durumlarda kullanılabilir.

doInBackGround() AsyncTask sınıfının gerçekleştirmek

istediği amaca ait işlemler burada yapılır. Veri tabanı işlemleri, internet üzerinden dosya indirme işlemleri vs.

publishProgress() Kullanıldığında onProgressUpdate()

metodunu tetiklemektedir.

onPostExecute() doInBackground() metotunda yapılan

işlemler tamamlandığında,

doInBackGround() metodunun dönüş değeri onPostExecute() metoduna parametre olarak gönderilmektedir.

UI iş parçacığı üzerinde yapılacak güncellemeler, onProgressUpdate(), onPreExecute() ve onPostExecute() metotları içinde yapılabilir. doInBackGround() metodunun dönüş değeri ise onPostExecute() metoduna gönderilmektedir. publishProgress() ile onProgressUpdate() arasındaki etkileşim ise publishProgress() metodunun onProgressUpdate() metodunu tetiklemesiyle başlamaktadır.

3.2.9. Broadcast Receiver

Broadcast Receiver sınıfı sistem ve uygulama üzerinde gelen ve giden sinyalleri dinleyen, takip eden veya herhangi bir belirtilen durumda uygulamanın tetiklenmesini sağlayabilen bir sınıftır. Oluşturulan Broadcast Receiver sınıfı sayesinde cihazdaki SMS takibi ve diğer uygulamalardan gelen bildirim ve mesajları yanıtlama işlemleri

(33)

yapılabilir. Bu sınıf örneğin cihazın zayıflayan pil gücü hakkında uyarı vermek için de kullanılabilir. Belirtilen durumlar gerçekleştiğinde, oluşturulan BroadcastReceiver sınıfına mesaj gelir ve bu sınıf içinde yorumlama gerçekleştirilir.

3.2.10. Content Provider

İçerik Sağlayıcıları (Content Provider), veri alışverişi yapmak ve yayımlamak için content:// şemasını kullanarak basit URI adresleme modeli üzerine kurulmuş bir ara yüz sağlar (Meier, 2013). İçerik Sağlayıcıları sayesinde uygulama verileri diğer uygulamaların kullanımına açılabilir. Böyle durumlarda İçerik Sağlayıcılar oluşturulabilir ve kullanıma sunulabilir. Uygulama çalışmıyor olsa da, İçerik Sağlayıcılar bir kere çalıştığı için diğer uygulamalar verilere erişim sağlayabilmektedir.

3.2.11. Adapter

Bir veri kümesiyle, bu kümenin UI tarafında kullanıcıya gösterileceği bileşen ile bağlantısını kuran yapılardır. Liste içerisinde (veri kümesi) bulunan her bir nesnenin, öğe (item) olarak liste halinde kullanıcıya gösterilmesini sağlamaktadır. Kısaca veri kaynağında bulunan her bir nesneyi, bu nesnelere ihtiyacı olan bir UI bileşenine bağlayan yapılardır.

3.2.12. Gradle

Android uygulama geliştirme aşamalarını düzenleyen bir inşa (build) sistemidir. Birden çok projenin daha kolay bir şekilde inşa süreçlerinin yönetilmesini sağlamaktadır. Ayrıca kütüphane yönetimini geliştiriciler için kolaylaştırmaktadır. Android uygulama geliştirme aşamasında build.gradle dosyası içerisinde dependencies içerisinde belirtilen kütüphanelerin doğrudan indirilmesini sağlamaktadır. Böylelikle üçüncü parti kütüphanelerin indirilip yüklenmesi aşamasında geliştiriciye avantaj sağlamaktadır. Şekil 3.7’de tez kapsamında geliştirilen uygulamaya ait build.gradle dosyası gösterilmektedir.

(34)

ġekil 3.7. Android Studio build.gradle dosyası

3.2.13. APK (Android Application Package)

Android işletim sistemine sahip cihazların çalıştırılabilir uygulama dosyalarıdır. Geliştirilen uygulamaların APK uzantılı dosya çıktıları cihazlara atılarak uygulamaların kurulumu sağlanabilir. APK dosyalarına bir tür arşiv dosyaları da denilebilir. Örneğin WinRAR programı ile açıldığında içerisinde bulunan dosyalar görüntülenebilir.

3.2.14. Android akıllı telefon ve tablet

Bu tez çalışmasında, donanım taraflı, Android akıllı telefon olarak 2 adet Lenovo P2a42 (Android versiyon 7.0) ve akıllı tablet olarak Samsung Galaxy Tab A (Android versiyon 5.1.1) kullanılmıştır.

(35)

3.2.15. Genymotion sanal cihazı

Android Studio SDK ile gelen emulatör bazen hız olarak yavaş kalabilmektedir. Genymotion ise sanal makine üzerine Android işletim sistemini çalıştırmaktadır. Bu sebeple bilgisayarın hızına bağlı olarak daha performanslı işlemler yapılmasına olanak sağladığı için Genymotion sanal cihazı tercih edilebilir.

Referansta (Genymotion, 2018) belirtilen adresten program tercihine göre indirme yapılabilir. Şekil 3.8’de çalışma sırasında bilgisayarda kurulmuş Genymotion sanal cihazının kullanıcı ara yüzü gösterilmiştir.

ġekil 3.8. Genymotion sanal cihazı

3.3. SQL (Structured Query Language)

Kullanılan veri tabanına verilerin eklenmesini, güncellenmesini, silinmesi vs. yönetimsel işlemlerin yapılmasını sağlayan yapılandırılmış sorgulama dilidir. Veriler veri tabanında tablolar halinde tutulur. SQL sorgulama dili sayesinde büyük verilere sahip uygulamalarda veriler kategorize edilerek istemciye sunulabilmektedir.

(36)

3.3.1. SQL Server Management Studio

Tez kapsamında geliştirilen uygulamada veri depolamak amacıyla gerçekleştirilen veri tabanı işlemleri için SQL Server Management Studio (öğrenci lisansı) kullanılmıştır. SQL Server, Microsoft’un geliştirdiği ilişkisel veri tabanı yönetim sisteminin adıdır. Şekil 3.9’da SQL Server Management Studio giriş ara yüzü gösterilmiştir.

ġekil 3.9. SQL Server Management Studio

3.3.2. Saklı Yordam (Stored Procedure)

Bu tez kapsamında veri tabanı işlemlerinde saklı yordamlar kullanılarak veri alışverişinde daha performanslı bir mimari oluşturulmuştur. Saklı yordamlar bir defa yazılıp derlendikten sonra birçok kez kullanılabilmektedir. Veri tabanı yönetim işlemlerinde bu sayede hem verim hem de esneklik arttırılmaktadır.

Şekil 3.10’da SQL Server Management Studio üzerinde yeni bir saklı yordam oluşturma aşaması gösterilmiştir.

(37)

ġekil 3.10. SQL Server Management Studio Saklı Yordam oluşturma

3.4. Web Servis (Web Service)

Veri alışverişinde farklı uygulamaların iletişimini ve haberleşmesini belirli bir veri formatını kullanarak sağlayan bir hizmettir. Bu sayede platform bağımsız bir yapısı bulunmaktadır. Geliştirilen uygulamaların sunucu üzerindeki metotları kullanmasını ve kullanılan bu metotların değer döndürmesini sağlayan yapılardır. Bu çalışmada istemci sunucu arasında iletişim kurmak ve veri alışverişini gerçekleştirmek amacıyla web servis kullanılmıştır.

3.4.1 Visual Studio 2015

Microsoft tarafından sunulan, web, masaüstü vb. gibi uygulamaları geliştirmek amacıyla kullanılan bir tür IDE’dir. Bu tez kapsamında web servis oluşturmak için Visual Studio 2015 (öğrenci lisanslı) kullanılmıştır. Ücretli ve ücretsiz sürümleri bulunmaktadır.

(38)

3.4.2. ASP.Net web application

Bu tez kapsamında geliştirilen uygulamada Visual Studio 2015 kullanılarak web servis için ASP.NET Web Uygulaması (Application) üzerinden .asmx web servis oluşturulmuştur. Şekil 3.11 ve Şekil 3.12’te Visual Studio ortamında .asmx web servis oluşturma aşaması gösterilmiştir.

ġekil 3.11. ASP.NET Web Uygulaması

(39)

3.4.3. IIS (Internet Information Services)

Windows işletim sistemlerinde kullanılan bir web sunucusudur. Web uygulamalarını barındırarak uygulamaların yayınlanmasını sağlar. ASP.NET uygulamalarının yayınlanması ve dışarıya açılması için IIS içerisinde barındırılması gerekmektedir. Şekil 3.13’te IIS servis ayarlarının Windows özelliklerinden açıldığı bölüm gösterilmektedir.

ġekil 3.13. IIS servislerinin açılması

Özelliklerden IIS servisler açıldıktan sonra IIS ara yüzünde IP, port, binding ayarlamaları yapılarak web uygulamasının yayınlanması sağlanır. Belirtilen IP ve port bilgileri üzerinden, uygulamalar web servis sayesinde veri alışverişini yapabilmektedir.

Şekil 3.14’te ise IIS sayesinde site yayının yapılabilmesi için konfigürasyon ayarlarının yapıldığı IIS Manager ara yüzü gösterilmektedir.

(40)

ġekil 3.14. IIS Manager ara yüzü

Yayının yapılabilmesi için Visual Studio’da yazılan web servisin IIS için belirtilen konuma yayınlanması (publish) gerekmektedir. Yerel ortam dışında yayın yapılabilmesi için konfigürasyon ayarlarının ilgili adres için yapılması gerekmektedir. Yerel ortam için yayınlama aşaması Şekil 3.15’te gösterilmektedir.

(41)

3.4.4. SOAP (Simple Object Access Protocol)

Ağ üzerinde farklı uygulamaların veri alışverişinde kullandığı bir protokoldür. Genelde HTTP protokolü kullanılarak gönderilen SOAP mesajları veri alışverişi için XML formatında olmak zorundadır.

3.5. XML (Extensible Markup Language)

Ağ üzerinde uygulamalar arasında veri transferini, iletişimini standart hale getirmek için tasarlanmış bir işaretleme dilidir. Ortam bağımsız metin tabanlı bir dildir. Şekil 3.16’da en basit haliyle örnek XML verisi gösterilmiştir.

ġekil 3.16. Örnek XML verisi

3.6. JSON (JavaScript Object Notation)

Veri alışverişinde kullanılan anahtar - değer mantığıyla oluşan bir veri formatıdır. Farklı platformlar arasında veri transferinde kullanılır. Veri alışverişi sırasında verilerin daha az yer kaplaması amacıyla geliştirilmiştir. Şekil 3.17’de örnek JSON verisi gösterilmektedir.

ġekil 3.17. Örnek JSON verisi

3.7. Firebase

Mobil ve mobil uygulamalar için bünyesinde gerçek zamanlı veri tabanı (realtime database), yetkilendirme (authentication) gibi işlemlerin yapılmasına olanak

(42)

sağlayan bulut teknolojisine sahip bir platformdur. Google tarafından satın alınarak bünyesine katılmıştır. Geliştiriciler için sunucu tarafında yapılacak işlemleri kolaylaştırmaktadır. Şekil 3.18’de Firebase platformunun sunduğu özellikler gösterilmektedir.

ġekil 3.18. Firebase hizmetleri (Firebase, 2018a)

Bu tez çalışması kapsamında Firebase platformuna ait aşağıdaki özellikler Android uygulaması için kullanılmıştır;

 Yetkilendirme (Authentication)

 Gerçek Zamanlı Veri Tabanı (Realtime Database)  Bulut Mesajlaşma (Cloud Messaging)

 Crashlytics

 Firebase Analytics (Firebase Matematiksel Analizleri)

Belirtilen bu özelliklerin kullanılabilmesi için Android Studio üzerinde konfigürasyon ayarlamalarının yapılması gerekmektedir.

(43)

3.7.1. Yetkilendirme (Authentication)

Kullanıcı girişi yetkilendirilmesi amacıyla kullanılmaktadır. Kullanıcıya ait e-posta, telefon, Facebook, Twitter, Github gibi hesap bilgileri ile giriş yapabilme imkânı sunmaktadır. Bu tez çalışmasında e-posta doğrulaması yapılarak uygulamaya giriş yetkilendirmesi yapılmıştır. Şekil 3.19’da uygulama için Firebase panelinde oturum açma sağlayıcıları gösterilmiştir.

ġekil 3.19. Firebase yetkilendirme

3.7.2. Gerçek Zamanlı Veri Tabanı (Realtime Database)

JSON verilerin gerçek zamanlı olarak depolanabildiği bir özellik olarak kullanılmaktadır. Eş zamanlı veri tabanı kullanımına olanak sağlamaktadır. Yapılan herhangi bir değişiklik Android uygulamasında eş zamanlı olarak değişebilmektedir. NOSQL bir veri tabanı olduğu için herhangi bir SQL sorgusu yazılmadan veriler JSON formatında depolanabilir ve kontrol edilebilir.

(44)

Firebase gerçek zamanlı veri tabanı panelinde kurallar bölümünde kullanıcıların okuma ve yazma yetkilendirmeleri yapılabilir. Güvenlik sebebiyle bu kuralların yazılması gerekmektedir. Aksi halde depolanan verilere erişim herkese açık ve ulaşılabilir olabilir. Bu durumda uygulamayı kullanan kullanıcılara ait özel bilgilerin çalınma riski ortaya çıkabilir. Şekil 3.20’de Firebase veri tabanı ekranı gösterilmektedir.

ġekil 3.20. Firebase gerçek zamanlı veri tabanı

3.7.3. Bulut MesajlaĢma (Cloud Messaging)

Anlık mesaj gönderme için kullanılan Google Bulut Mesajlaşma (Google Cloud Messaging) servisinin güncel halidir. Firebase Bulut Mesajlaşma (Firebase Cloud Messaging) olarak adlandırılmaktadır. JSON formatında verilerin kullanıcılara anlık olarak iletilmesini amaçlayan bir çözümdür. Notification ve Data olarak iki ayrı mesaj tipi bulunmaktadır. Anlık olarak gönderilebilen bu JSON mesajları sayesinde sunucu - kullanıcı ve kullanıcı - kullanıcı arasında iletişim sağlanabilmekte ve veri transferi daha verimli bir şekilde kullanılabilmektedir. Firebase resmi sitesinde sunduğu mesajlaşma şeması Şekil 3.21’de gösterilmiştir.

(45)

ġekil 3.21. Firebase bulut mesajlaşma (Firebase, 2018b)

3.7.4. Crashlytics

Mobil uygulamalarda çalışma anında karşılaşılan hataların, kilitlenmelerin gerçek zamanlı olarak raporlanmasını sağlayan bir araç olarak kullanılmaktadır. Bu sayede geliştiriciler, uygulamada hangi ekranda hangi sebeple hatayla karşılaşıldığını daha kolay bir şekilde anlama imkânına sahip olabilmektedir. Şekil 3.22’de bu tez kapsamında geliştirilen uygulamaya ait Crashlytics paneli gösterilmektedir.

(46)

3.7.5. Firebase Matematiksel Analiz (Firebase Analytics)

Uygulamaya ait istatistiksel bilgileri geliştiricinin izlemesini sağlayan bir araçtır. Bu sayede uygulama geliştiricisi uygulamasının kullanım oranları ve detayları hakkında daha kapsamlı bilgi alabilmektedir. Şekil 3.23’te uygulamaya ait istatistiksel bilgilerin bulunduğu Firebase panel (dashboard) ekranı gösterilmektedir.

ġekil 3.23. Firebase Panel

3.8. Çoklu Ekran Desteği

Uygulamanın, birbirinden farklı çözünürlüğe sahip cihazlarda çalışırken, kullanıcı ara yüzünün de stabil olması için, res klasörü içinde çoklu ekran desteğini sağlamak amacıyla 22 farklı values klasörü oluşturulmuştur. Oluşturulan klasör isimleri ise sistemin hangi çözünürlükte hangi klasörde bulunan dp değerlerini kullanacağını bilmesi için uygun olarak verilmiştir. Çoklu ekran desteğinin sağlanmadığı uygulamalar, farklı cihazlarda kullanışsız hale gelebilmektedir. Bu durumların önüne geçmek için pixel ve dp değer oranlarının sağlandığı farklı ölçülerin verildiği values klasörleri oluşturulmuştur.

Oluşturulan values klasörleri içerisinde ise <dimen> etiketleri arasına uygun dp değerlerinin yazıldığı XML dosyaları bulunmaktadır. Şekil 3.24’te geliştirme ortamında oluşturulan values klasörleri ve örnek bir XML dosya içeriği gösterilmiştir.

(47)

ġekil 3.24. Uygulama geliştirme ortamı values klasörleri

Uygulamada oluşturulan layout dosyalarında, tasarım için kullanılan “ac_?dp” formatına sahip anahtarlar sayesinde uygulama uygun çözünürlük için uygun dp değerlerini alabilmektedir.

3.9. Yerel (Native) Uygulama GeliĢtirme

Bu çalışmada uygulama, yerel olarak geliştirilmiştir. Yerel uygulama sayesinde; üzerinde çalışılan platformun donanımsal ve yazılımsal özelliklerine doğrudan erişilebilmektedir. Android Studio’da Java programlama dili ile geliştirilen Android

(48)

uygulamalar, Swift veya Objective-C ile XCode üzerinde iOS işletim sistemine sahip cihazlar için geliştirilen uygulamalar örnek olarak verilebilir.

Yerel (native), melez (hybrid), çapraz (cross) platform olarak uygulama geliştirmenin avantaj ve sınırlılıkları Tablo 3.2’de gösterilmiştir.

Tablo 3.2. Mobil uygulama geliştirme platformlarının avantajları ve sınırlılıkları (Özdamar-Keskin ve

Kılınç, 2015)

Platform Avantajları Sınırlılıkları

Yerel (Native)

 Mobil cihazlara, öğrenme ortamlarına ve uygulamalarına tam erişim sağlayabilmektedir.  Özellikle kullanıcı ara yüzü konusunda en iyi

performansı sağlamaktadır.

 Apple ve diğer mağazalarda yer alabilmektedir.  Daha fazla gelişmiş düzeyde uygulamalar

kullanılabilir.

 Farklı beceriler, diller ve araçlar için farklı ortamlar gerektirmektedir.

 Geliştirilmesi masraflıdır.  Farklı ortamlarda yeniden

kullanılamamaktadır.

Melez (Hybrid)

 JavaScript, HTML ve CSS ile inşa edilmiş ortamlarda çalışmaktadır.

 Desteklenen platformlar arasında kod tabanı tekrar kullanılabilir.

 Apple mağazalarında yer alabilmektedir.  Eklentiler yoluyla genişletilebilen uygulamalara

birçok cihazla erişilebilir.

 Kullanıcı arabirim performansı yerli (native) web görünümlü uygulamalardan etkilenmektedir.

 Kullanılan her ortama özgü web görünümlü uygulamalar gerekmektedir.

Çapraz (Cross)

 Eğer kaynak dili ile takım becerileri eşleşirse var olan beceriler yeniden kullanılabilir.  Desteklenen platformlar arasında kod tabanı

tekrar kullanılabilir

 Birçok cihaz uygulamasına erişim sağlanabilmektedir.

 Apple ve diğer mağazalarda yer alabilmektedir.

 Hedeflenen tüm ortamlarda desteklenmeyebilir.

 Hata ayıklama zor olabilir.

Mobil Web (Uyumlu)

 Geniş kitlelere ulaşabilir.

 Esnek tasarlanmış sitelerdir, var olan web sitelerini mobile uyarlanarak kullanılabilir.  Kod tabanı platformlar arasında yeniden

kullanılabilir.

 Gerekli becerileri bulmak zor değildir.

 API’lere sınırlı erişim.  Sınırlı keşfedilebilirlik.

(marketlerde bulunmamaktadır)

 Para kazandırması daha zordur.

(49)

3.10. TuĢ Kaydedici (Keylogger)

Kullanıcının sistemde gerçekleştirdiği tuş vuruşlarını kayıt altına alan yazılımlar keylogger olarak adlandırılmaktadır. Bu tür yazılımlar sadece tuş vuruşlarını kaydeden yazılımlar değildir. Geliştiricinin tercihine bağlı olarak sistemin ekran görüntülerini de alarak kullanıcının aktivitelerinin daha detaylı olarak izleme imkânı da sunmaktadır.

Hem yazılımsal hem de donanımsal olmak üzere çeşitleri bulunmaktadır. Yazılımsal olarak geliştirilenler, sistemde bulunan diğer yazılımlar gibi çalışmaya devam etmektedir. Donanımsal olanlar ise sistem cihazına takılacak olan bir aparat ile log tutma işlemlerini gerçekleştirebilmektedir.

Tuş kaydediciler, eğer bir trojan veya rootkit parçası değilse, uzaktan değil yerel olarak kurulum gerektirir. Sisteme uzaktan müdahale edilecekse, keylogger özelliği bulunan trojan yazılımlar tercih edilir (Elbahadır, 2014).

Tuş kaydedici uygulamalar kötücül yazılım olarak düşünülse de, personel denetleme, çocuk takibini sağlama gibi durumlarda tamamen yararlı bir yazılım olarak da kullanılabilmektedir.

(50)

4. UYGULAMANIN ÇALIġMASI

Uygulamanın kendi içerisinde, yöneticinin (ebeveyn, iş yeri sahibi vb.) kullanacağı ve izlenecek (çocuk, personel vb.) cihazda bulunacak uygulama olmak üzere 2 farklı akışı bulunmaktadır. Yönetici uygulaması birden çok cihazı takip edebilmektedir. Yönetici uygulaması ile aşağıdaki özellikler uzaktan takip edilebilmektedir.

 Uygulama listesinin görüntülenmesi ve uygulama engelleme

 Telefon rehberinin görüntülenmesi ve gelen/giden aramaları engelleme  Arama kayıtlarını görüntüleme

 SMS geçmişini görüntüleme

 Tuş vuruşlarını görüntüleme (Keylogger)  Takvim etkinliklerini görüntüleme

 Cihazda bulunan hesap adlarını görüntüleme (e-posta hesabı vb.)  Konum bilgilerini görüntüleme

 Cihaz temel bilgilerini görüntüleme (Bağlantı bilgileri, IMEI, SSID, BSSID, IP, Batarya durumu, Cihaz adı ve sürümü vb.)

 Cihazı uzaktan uyku moduna alma  Uygulamaya ait ikonu uzaktan gizleme

 Uzaktan gizli fotoğraf çekimi (Ayrıca her saatte periyodik çekim)

 Cihazda bulunan uygulamalara ait kullanım bilgileri (En son kullanılan uygulamalar, en çok kullanılan uygulamalar.)

 Ayarlar menüsünden çalışması istenilen özellikleri aktif ve pasif hale getirebilme

 İnternetin olmadığı durumlarda, izlenen cihaz üzerinde ilgili verileri depolama ve bu sayede depolanan verilerin internet bağlantısı sağlandığı anda sunucuda bulunan veri tabanına kaydetmesi (Çevrim dışı çalışma)  İzlenen cihazda verilerin sunucu haricinde cihazın yerel veri tabanında da

depolanabilmesi ve böylece izlenen cihazda uygulama açıldığında verilerin yerel veri tabanından çekilerek gösterilmesi (Hızlı görüntüleme) Uygulamaya ait akış şeması Şekil 4.1’de gösterilmiştir.

(51)
(52)

Uygulamaya ait belirtilen özellikler bu bölümde alt başlıklar halinde ekran görüntüleri ile birlikte anlatılmıştır.

4.1. Uygulamaya GiriĢ

Uygulamaya, kullanıcı e-posta adresi ve şifresi ile doğrulama yapılarak giriş yapılabilmektedir. Kayıt ol işlemi için ayrıca bir ekran tasarlanmamıştır. Kullanıcının giriş yaptığı e-posta adresi doğrulandığı durumda, eğer ilk kez giriş yapılıyorsa otomatik olarak veri tabanında kayıt oluşturulmaktadır. Daha sonraki girişlerinde ise kayıt işlemi daha önce gerçekleştirildiği için, giriş yapılan e-posta adresi veri tabanına tekrar kaydedilmemektedir ve uygulamaya giriş gerçekleşmektedir.

Yönetici kendi e-posta adresi ile giriş yaptığı tüm cihazlara uzaktan izleme işlemini gerçekleştirebilmektedir. Bu cihazlarda ise özelliklerin çalışması için gerekli izinlerin verilmesi gerekmektedir. Şekil 4.2’de uygulama giriş ekranı gösterilmektedir.

(53)

Giriş yapıldıktan sonra kullanıcıya uygulamanın türü sorularak devam edilir. Kullanıcı bu aşamada, kurulan uygulamanın, yönetici uygulaması veya izlenecek uygulama olduğunu belirtir. Eğer yönetici uygulaması (Admin Application) seçeneği seçilerek devam edilirse ve henüz takip edilecek bir cihaz kaydı yapılmamışsa uyarı mesajı verilerek uygulamadan çıkış yaptırılır. İzlenen uygulama (Monitored Application) seçeneğini seçerse cihaz için isim vermesi istenir ve devam edilir. Eğer aynı isim daha önce başka bir cihaz için verilmişse yine uyarı verilir ve tekrar isimlendirilmesi istenir. Şekil 4.3’te uygulama türünün seçildiği ekran gösterilmiştir.

ġekil 4.3. Uygulama tipinin seçimi

Yönetici uygulama kullanıcısı menü açıldığında ekranın sol üstünde takip için kurduğu cihazları liste halinde görebilmektedir. Yönetici, açılır listede seçim yaptığı cihazı uzaktan izleyebilmektedir. İzlenen cihaz uygulamasında ise herhangi bir uzaktan izleme bulunmamaktadır. Bu uygulamalarda kendi cihazları üzerindeki izlemeler görüntülenebilmektedir. Uzaktan izleme işlevi sadece admin cihazında bulunan

Şekil

ġekil 1.3. Amerika ve Çin’de kullanılan mobil işletim sistemleri oranı (KantarWorldPanel, 2019)
ġekil 3.1. Android mimarisi (Android, 2018b)
ġekil 3.3. Android Studio tasarım katmanı geliştirme ekranı
Şekil  3.4’te  Android’in  resmi  sitesinde  sunduğu  Service  sınıfının  yaşam  döngüsü  gösterilmektedir
+7

Referanslar

Benzer Belgeler

Android cihaza yazılan arayüz uygulaması sayesinde motor kontrolü için gerekli olan bilgi Android cihazdan bluetooth modül kartına gönderilmektedir.. Bluetooth

Yapılan çalışmada ulaşım türü tespiti için Android işletim sistemine sahip akıllı telefondan, Tablo 1’de gösterilen modellerdeki algılayıcı

• Farklı konfigürasyonlar için oluşturulacak kaynakları kaydetmek için res dizini

 Kes komutu için taşınacak metni seçtikten sonra aşağıdaki yollardan biri kullanılabilir: Giriş sekmesi – Pano Grubu, Seçili alan üzerinde iken sağ fare tuşu ,

Dalvik VM (Dalvik Virtual Machine) Dan Bornstein tarafından Android iĢletim sistemi için özel olarak geliĢtirilmiĢ bir sanal makinadır. Java olarak yazılan uygulama kodları

• onDestroy() metodu: servisin stopService() fonksiyonu ile durdurulması veya herhangi bir bağlantısının kalmaması durumunda sistem servisi ortadan kaldırmadan hemen

Blocks bölümünden Buton1 aracını seçelim ve açılan ekrandan “when Button1 .click do” bloğunu alalım ve text ifadesini “Sayı Üret” yapalım... Blocks

tabletlerde ise Android, iOS ve Windows işletim sistemleri yaygın olarak kullanılır... Android