ANDROİD STUDİO APK İMZALAMA VE İMZA OLUŞTURMA

 

APK NEDİR?

 

Android Package Kit sözcüklerinin kısaltılmışıdır.APK,Android uygulamalarını dağıtmakta ve yüklemekte kullanılan bir formattır. APK dosyası, cihazınızda yüklemeye yapmak için gerekli tüm öğeleri barındırır.

Google Play Store’dan indirdiğimiz oyun yada uygulama, cihazımıza APK olarak yüklenir. Android cihazlarda varsayılan olarak yüklü halde gelen Google Play servisleri, yüklenen bu APK’ların sürekli olarak yeni sürümlerini ve güncelleme durumlarını denetler.  Yani Google Play Servisleri uygulaması da bu APK dosyasını denetleyerek size uygulamanın güncel olup olmadığını bildirim olarak belirtir.

APK Dosyası Nasıl Yüklenir?

  1. Cihazınızın “Ayarlar” menüsüne giriş yapın.
  2. Ayarlar penceresindeki “Güvenlik” bölümüne giriş yapın.
  3. Güvenlik ayarları sayfasında yer alan “Bilinmeyen kaynaklar” seçeneğini işaretleyin.
  4. Artık APK uzantılı dosyaları çalıştırarak Play Store haricinden oyun ve uygulama yükleyebilirsiniz.

Not: İnternetten indireceğiniz APK dosyaları .RAR veya .Zip uzantılı dosya arşivlerinde barınıyor olabilir. Bu dosyaları çalıştırmak için ” RAR for Android ” uygulamasını cihazınıza yüklemelisiniz.

ANDROİD STUDİO APK İMZALAMA VE İMZA OLUŞTURMA

 

Android projesini geliştirdiniz. Emülatör’de veya doğrudan Android’li cihazınızda test ettiniz. Uygulamanızın başka bir cihazda kullanılmasını istiyorsanız, .apk uzantılı bir dosyaya çevirmeniz gerekmektedir. Apk dosyasını bir nevi .exe uzantılı dosya olarak düşünebilirsiniz.Android cihazın hafıza kartına veya bluetooth gibi aktarım yoluyla dosyayı başka cihazlara aktarıp kurulum yapmak suretiyle uygulamayı çalıştırabilirsiniz. Şimdi nasıl .apk uzantılı dosya oluşturacağımıza geçelim;

 

Öncelikle Build->Generate Signed APK diyoruz.

 

Sonra module adımızı seçiyoruz.

 

Sonrasında next deyip gelen ekranda eğer önceden oluşturduysak Choose Existing diyoruz. Eğer oluşturmadıysak Create new butonuna tıklıyoruz.Ben Create new ile devam ediyoruz.

 

 

Karşımıza yukarıda boş form geliyor. Dataları düzgün bir şekilde dolduruyoruz. İstenilen datalar ise şu şekilde:

Key Store Path: Oluşturulan imzayı kaydedeceği yer.

Password: Keystore şifresi.

Alias:Oluşturacamız dosyanın adı.

Password:Az önceki belirlediğimiz şifreyi girebiliriz.

Confirm: Şifre tekrar.

Validity(years):Ne kadar geçerli olacağı Android 25 yıl belirlememizi önermiş.

First And Last Name: Ad Soyad.

Organization Unit:Şirketin Depertman adı.

Organization:Şirket Adı.

City or Locality:Şehir.

State or Province:İlçe diyebiliriz.

Country Code:Ülke kodu.

Evet gerekli alanları yukarıdaki gibi doldurduktan sonra Ok butonuna basıyoruz.

Bu sefer yukarıda boş gelen sayfanın dolu hali geliyor ve oluşturduğumuz imza seçili geliyor. Gerekli alanlara belirlediğimiz şifreleri girdikten sonra Next’e basıyoruz.

 

Build Type relase seçip Finish’e basıyoruz ve bir süre imzalamasını bekliyoruz. İmzalama işi bittikten sonra karşımıza aşağıdaki sayfa geliyor ve imzalı APK’nın bulunduğu dizini açabiliyoruz.

Bu işlemlerin ardından artık yeni bir imzamız ve imzalı bir APK’mız var.

NOT:OLUŞTURDUĞUMUZ İMZAYI ASLA KAYBETMİYORUZ. İMZAYI KAYBEDERSEK UYGULAMAMIZI GÜNCELLEYEMEYİZ.BİR APK BİR İMZA İLE GÜNCELLENİP STORE’A ATILDIKTAN SONRA GÜNCELLENMESİ İÇİN AYNI İMZA’YI KULLANMAMIZ ŞARTTIR. AYNI ŞEKİLDE İMZANIN ŞİFRESİNİDE UNUTMUYORUZ.UNUTURSAK İMZAYI KULLANAMAYIZ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MEHMET AKİF ERSOY ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ

KADRİYE MELİKE AZBOZ

melike.azboz@hotmail.com

 




Programlama Dilleri

Programlama dillerine girmeden önce algoritma nedir öncelikle onu öğrenelim. Algoritma,bir sorunu çözmede kullanılacak kuralların sıralı listesi olarak açıklanabilir. Programlama dili ise bir yazılım programı oluşturabilmek için gereken kodlar, talimatlar ve yazım kurallarını kapsayan sete verilen isimdir. Algoritma ve programlama dilleri arasındaki ilişki basittir. Algoritma kalıcıdır,diller geçicidir. Örnek olarak Assembly dilinin geliştirildikten sonraki ilk 5 yılındaki kullanım yüzdesiyle şimdiki yüzdesi aynı değildir. Bu konuyla alakalı bu blogdaki yazıyı okuyabilirsiniz.

Programlama Dillerinin Tarihçesi

Charles Babbage, 1910 yılında Analytical ve Difference adında iki makine tasarladı. Charles ve asistanı Ada Lowelace Bernoulli sayılarının Analytical Engine ile çözümü için bir yöntem geliştirdi. Bu yöntem çoğu tarihçi tarafından programcılığın başlangıcı olarak görülüyor.

Şekil 1. Difference Engine ve Charles Babbage

Programlamaya Yaklaşım Türleri

Çok sayıda yaklaşım türü bulunmaktadır ama günümüzde çok kullanılanlardan 5 tanesini açıklayarak devam edelim.

Fonksiyonel Programlama

Bu yaklaşımda matematik fonksiyonlarındaki gibi alt programlar tanımlanmakta ve bu alt programların değişik argümanlar ile çalışması sağlanmaktadır. Yani sıra sıra işlemler neyse onlar yapılıyor.

Bu yaklaşımda kullanılabilecek bazı diller : C,F#

Nesne Yönelimli Programlama

Bütün yapıyı nesneler ve nesneler arası ilişki olarak gören modellemedir. Bu yapıya göre her nesne bir sınıfa ait ve bu sınıftan türetilir. Çomar bir köpektir. Çomar nesne,köpek bunun sınıfıdır.

Bu yaklaşımda kullanılabilecek bazı diller : Java,C#

Yapısal Programlama

Amaç problemi alt parçalara bölerek bu parçaların çözümlerinin birleştirilmesidir. Bu yönüyle parçala fethet (Divide and conquere) yaklaşımı olarak kabul edilebilir.

Bu yaklaşımda kullanılabilecek bazı diller : Java,C

Emirli Programlama

Bir programlama dilindeki komutların satır satır emirlerden oluşmasıdır. Örneğin bir robota komut verecek olsaydık:

  • Kolu 10 derece sağa döndür
  • 2 metre yürü
  • Kolu 20 derece sola döndür gibi emir komutlarıyla oluşan yaklaşımdır.

Bu yaklaşımda kullanılabilecek bazı diller : Fortran,C

Otomat Yönelimli Programlama

Kaynağını otomatlar (automata)’dan alır ve sonlu durum makinaları (finite state machine, FSM) ile tasarlanan bir makinanın kodlanmasını hedefler. C dilindeki switchlerin dallanması gibi düşünülebilir.

Bu yaklaşımda kullanılabilecek bazı diller : Visual Basic,C

Programlama Dilleri Türleri

3’e ayrılır.

Düşük Seviyeli Diller

Kullanılan donanımdaki en temel işlemler yapmayı kullanılır.Eskisine oranla kullanımı cok düşmüştür.Makine koduna en yakın dillerdir. Örnek olarak Assembly verilebilir.

Orta Seviyeli Diller

Esnek yapıdadırlar .Hem düşük hemde yüksek seviyeli programlama yapabilir. Günümüzde kullandığımız işletim sistemleri çoğunlukla C’de yazılmıştır. Örnek olarak C verilebilir.

Yüksek Seviyeli Diller

İnsan diline en yakın seviyedeki dillerdir.Belirli bir fonksiyon üzerinde çalışırlar,bu kısıtlama programlama hakimiyetini azaltır.En kolay öğrenilecek diller bu seviyede olur.En etkin ve hızlı programlama bu seviyededir. Örnek olarak Java,C#,Basic verilebilir.

Dil Türleri arasındaki farklar

Düşük seviyedeki diller, güçlüdür, hakimiyet en üst seviyededir ve programın çalışması diğer seviyelere göre hızlıdır. Eksi yönleri ise kod yazımı,anlaşılması ve öğrenimi zordur. Programın geliştirilmesi uzun zaman alır.

Yüksek seviyedeki diller, öğrenimi ve anlaşılması kolaydır. Kod yazımı ve düzenlemesi hızlıdır. Eksi yönleri ise, programın çalışması diğer seviyelere göre yavaş ve hakimiyeti kısıtlıdır.

Orta seviyedeki diller, iki türün ortasıdır. Bunun için kullanılan bir denklem vardır :

Düşük seviye = Uzun geliştirme süresi + Hızlı çalıştırma

Yüksek seviye = Kısa geliştirme süresi+ Yavaş çalıştırma

Orta seviye ikisinin arasında.

Programlama Dilleri Kronolojisi

Hepsini eklemek mümkün değil ama önemli ve bu sektörde çalışan çoğu kişinin de haberdar olduğu dilleri yazarsak eğer :

  • Grace Hooper 1951 yılında A-0 adında ilk derleyiciyi tasarlıyor.
  • İlk Nesne yönelimli dil olan Simula ortaya çıkıyor.
  • C dili Dennis Ritchie ve Ken Thompson tarafından geliştiriliyor. Daha önce UNIX OS’u ve B dilini de yazarken calışmışlardı. Sistem programcılığında,kernellarda kullanılır.
  • C++ dili günümüzde oyun yapılırken veya görüntü işleme yapılırken kullanılır.
  • Perl ise metin işleme ve görüntü tanıma üzerinde ciddi güçlü olan dildir.
  • Python dili Data Science, Veri Madenciliği, gömülü donanımlarda kullanılır.
  • Java dili genel amaçlı kullanım, sistem programcılığında, bilim ve mühendislik gibi birçok alanda kullanılır.
  • PHP dili web programcılığından genel amaçlı kullanıma kadar geniş bir yelpazesi vardır.
  • Javascript de aynı PHP gibi webte kullanılır, yorumlanmayan browser üzerinde çalışan bir dildir.
  • C#, MS tarafından OOP olarak tasarlanan bir dildir. MS ve .NET framework olmadan çalışmaz. MS ürün ve yazılımlarında kullanılır.
  • Go, Google tarafından geliştirilmiştir. Öbür dillerinin popülarite artışına göre çok çok hızlı popüler olup kullanımı artmıştır.Sistem programlamada, webte kullanılmaktadır.
  • Swift, Apple tarafından Objective-C’nin yerini alması için geliştirilen dildir. Apple ürünlerinde kullanılır.

Programlama öğrenilirken neler bilinmeli ?

  • İngilizce bilmek
  • Seçeceğiniz alanı belirlemek (Web,Mobil,Sistem,Sunucu…)
  • Seçtiğiniz alan ve dillerde önemli işler başarmış veya paylaşımlar yapan insanların projelerinin takip edilmesi
  • Açık kaynaklı olan projelerdeki kodların, düzenlerin, sistematiklerin daima takip edilmesi

Alanlarına göre Programlama Dilleri

Mobil

  • iOS içinse Swift veya Objective-C
  • Android ise Kotlin, Java, C#

Web

  • Front-end için HTML başta olmak üzere CSS, Javascript..
  • Back-end için PHP, ASP.NET ve C#, (Frameworkler sayesinde de yapılabilir Ruby on Rails,Django gibi)

Desktop

  • Windows ise C#, .NET kullanan diller, C++, Java..
  • Tüm ortamlarda çalışanlar için Java, Python, HTML5..

Oyun

  • Grafik kütüphaneleri için uğraşacaksanız C
  • Oyun motorlarıyla gelişticekseniz C#, C++..

Elektronik Cihazlar

  • C, Assembly, Python

Yapay Zeka

  • Haskell, Scala, Prolog

Programlamayı nerelerden öğrenebilirim ?

Online eğitim veya kurs veren siteler

  • Codecademy, W3schools, Udemy, Coursera.

Programlama kitapları

  • C#, Java için Deitel’ın kitapları, Dikeyeksen yayınevi kitapları.

Programlama kursları

  • Bilge Adam,belediye meslek eğitim kurumları gibi kurumlar.

Bilişim dünyasındakilerin eğlendiği dil : Brainfuck

1993 yılında Urban Mülller tarafından üretilen bu dilin asıl çıkış amacı mümkün olan en küçük boyutlu derleyiciyi yapmaktı. Sonraları programcıların kendi sınırlarını zorlayıp eğlendiği bir dile dönüşmüştür. Turing-Complete bir dil olduğundan teoride herhangi bir algoritma bu dilde yazılıp işlenebiliyor. Brainfuck, sekiz komut karakteri +-<>[],. haricindeki tüm karakterleri yok sayar. Bu nedenle (eklenecek yorum, komut karakterleri içermediği sürece) koda yorum eklemek için özel bir söz dizimine ihtiyaç yoktur.

Komut Anlamı
        > İşaretçiyi bir sonraki hücreye kaydır
        < İşaretçiyi bir önceki hücreye kaydır
        + İşaretçinin bulunduğu hücredeki baytı 1 arttır.
         – İşaretçinin bulunduğu hücredeki baytı 1 azalt.
         . İşaretçinin bulunduğu hücredeki baytı standart çıktı birimine yaz.
         , Standart girdi biriminden bir baytlık girdi al ve bunu işaretçinin bulunduğu hücreye yaz.
         [ Eğer işaretçinin bulunduğu hücrenin değeri sıfırsa, ] karakterinden sonraki komuta atla.
         ] Eğer işaretçinin bulunduğu hücrenin değeri sıfır değilse, önceki [ karakterinden bir sonraki komuta atla.

Brainfuck dilinde Hello World örneği

[crayon-5c3f47590582f197957386/]

Programlama Dillerinin Popülaritesi

Google indexlerine göre son bir yıl içindeki popülarite tablosu

 

Bu tabloyu göstermenin sebebi eğitim için çoğunlukla Google Search’ün kullanılması ve diller üzerinde eğitim veren siteleri indexleri olduğu için.

Java en popüler dilken,Son 5 yılda en çok popülerleşen Python ve en çok popülarite kaybeden PHP’dir aynı zamanda.

 

Bütün internet indexlerine göre son bir yıl içerisindeki popülarite tablosu

Ekim 2017

Ekim 2016 Diller Reytingleri Değişim yüzdesi

1.

1. Java 12.43% -6.37%

2.

2. C 8.37% -1.46%
3. 3. C++ 5.00%

-0.79%

4.

4. C# 3.85%

-0.51%

5. 5. Python 3.80%

+0.03%

6.

6. Javascript 3.01% +0.26%
7. 7. PHP 2.79%

+0.05%

8.

8. Visual Basic 2.73% +0.08%
9. 11. Assembly 2.37%

+0.14%

10. 13 Ruby 2.32%

+0.32%

Assembly ve Ruby yükselişteyken, Java ciddi derecede kan kaybetmiştir.

Referanslar :

  1. http://computer.howstuffworks.com/question717.htm
  2. https://www.bannerconnect.net/dont-fear-another-programming-language/ Dil degistiren adam
  3. http://www.baskent.edu.tr/~tkaracay/etudio/agora/bt/pe.html Tarihçe kisminda kullanilan kaynak
  4. https://scracthegitim.wikispaces.com/Programlama+Dillerinin+Tarihçesi
  5. http://bilgisayarkavramlari.sadievrenseker.com/2011/04/25/algoritma-algorithm/
  6. http://bilgisayarkavramlari.sadievrenseker.com/2007/12/18/yapisal-programlama-structured-programming/
  7. http://bilgisayarkavramlari.sadievrenseker.com/2007/12/18/fonksiyonel-programlama-procedural-programming-functional-programming/
  8. http://bilgisayarkavramlari.sadievrenseker.com/2007/04/14/nesne-yonelimli-programlama-object-oriented-programming/
  9. http://bilgisayarkavramlari.sadievrenseker.com/2009/11/16/emirli-programlama-imperative-programming/
  10. http://bilgisayarkavramlari.sadievrenseker.com/2007/12/18/otomat-yonelimli-programlama-automata-based-programming
  11. https://stackoverflow.com/questions/3468068/low-mid-high-level-language-whats-the-difference
  12. http://www.godoro.com/Divisions/Ehil/Mecmua/Magazines/Articles/txt/html/article_ProgrammingAndLanguage.html
  13. https://en.wikipedia.org/wiki/Timeline_of_programming_languages
  14. http://devnot.com/2017/go-programlama-diline-genel-bakis/
  15. https://tr.wikibooks.org/wiki/C_Sharp_Programlama_Dili/C_Sharp_hakkinda_temel_bilgiler
  16. http://www.webmasto.com/hangi-programlama-dilini-ogrenmeliyim-infografik
  17. https://www.technopat.net/sosyal/blog-icerik/hangi-programlama-dili-nerede-kullanilir-yeni-baslayanlara-tavsiyeler-nelerdir.699
  18. http://tr.0wikipedia.org/index.php?q=aHR0cHM6Ly90ci53aWtpcGVkaWEub3JnL3dpa2kvQnJhaW5mdWNr
  19. https://eksisozluk.com/brainfuck–254183
  20. https://learnxinyminutes.com/docs/tr-tr/brainfuck-tr/
  21. http://pypl.github.io/PYPL.html
  22. https://www.tiobe.com/tiobe-index/

 




Swift eğitim seti

Ersin Şengül tarafından hazırlanmış olan Swift eğitim seti videoları.




Örnek Metin Kod yazımı

Buraya video gelecek

Buraya kod eklemek istesek ne olur acaba?

 
[crayon-5c3f47590b18d535134378/]
C kodları buradan devam ediyor…..
[crayon-5c3f47590b19a443190452/]