Android Studio Yavaş ise Hızlandırma

Android Studio açılışı ve genel kullanımını hızlandırmak için aşağıdaki adımları takip edin. Açıkcası bu kadar fark beklemiyordum. Gözle görülür bir hız artışı yaşadığım için bu ayarları kaydetmek istedim. Faydalı olur inşallah.

 

Gradle Scripts altındaki gradle.properties içerisine aşağıdaki satırları ekliyoruz.

org.gradle.daemon=true
org.gradle.parallel=true
android studio yavaş çalışıyor

 

File > Settings > Build… > Build Tools > Gradle penceresinde Offline work kutucuğunu seçin.
android studioyu hızlandırmak

 

 

Bir alt menü seçeneği olan Compiler penceresinde Command-line Options kutucuğuna –offline değerini girin.
android studio hızlandırma

 

Android studio programını yeniden başlattığınızda yavaşlık sorununuz çözüme kavuşmuş olacak. Kolay gelsin. İyi çalışmalar.

Android Local Webview, Yerel Html Css Dosya Kullanımı

Android Local Webview ile çok hızlı bir şekilde android uygulaması yapabilirsiniz. Eğer rehbere ulaşmak, sms göndermek, lokasyon erişimi gibi standart android işlevlerini kullanmayacaksanız uygulamanızın app/src/main/assets klasöründe oluşturacağınız html dosyalarıyla içeriğinizin görüntülenmesini sağlayabilirsiniz.
Bu klasör içerisinde oluşturacağınız html ve css dosyaları bildiğiniz web sitesi yapımında kullandığınız mantıkta işlev görecektir. Bu html dosyalarının görüntülenmesi için webview görünümünün çağırılmasında gerekli kodları android studio kullanarak oluşturmanız yeterli.

Adı webview olsada yerel kullanıma yönelik olduğu için uygulamanızın herhangi bir internet iznine ihtiyacı yoktur.

html dosyalarınız app/src/main/assets dizininde yer alması gerektiğini vurgulamış olsakta MainActivity içerisinde yer alan dizin tanımlamamız şu şekilde olmalıdır “file:///android_asset/index.html”
yani gerçek klasör olan assets’deki s tanımlama yolunda yok. Kullanım bu şekildedir kafanız karışmasın.

Dosya yollarını daha detaylı görmek isterseniz
https://github.com/tasarhane/webview-yerel-html-css

Örnek android studio projesi ile html dosyalarının çağırılması için gerekli minimal kod yapısı kullanılmaya çalışılmıştır. Proje API15: Android 4.0.3, API17: Android 4.2 (Jelly Bean) ve API23: Android 6.0 (Marshmallow) sürümleri ile test edilmiş ve sorunsuz çalışmaktadır.

Yeni proje oluşturma adımlarımız aşağıdaki şekilde;

  1. Projemize LocalWebView adını verdik,
  2. Minimum SDK için API15: Android 4.0.3 (IceCreamSandwich) tercih ettik,
  3. Şablon aşamasında Empty Activity seçimini yaptık

MainActivity.java

activity_main.xml

AndroidManifest.xml

Android Başlatıcı Yapımı, Basit Launcher

Android Başlatıcı Yapımı, genel olarak launcher ifadesiyle bilinen bu aracın oluşturulması için izlenmesi gerek adımlar normal bir android uygulama yapımı için izlenenlerle aynıdır. Toplamda 4 dosyada yapacağınız düzenlemeler ile kendi başlatıcınıza sahip olabilirsiniz.
Konu ileride güncelleneceği düşüncesiyle şimdilik minimal ihtiyaçlarla hazırlanmış bu 4 dosyayı paylaşmaktayız.

Uygulamalarda genel olarak API 15 kullanmaktayız zira an itibariyle %97.4’lük bir kullanım oranına sahiptir.

Android Açılış Ekranı Splash Screen Yapımı

Android studio ile yeni splash screen, açılış ekranı özellikli bir proje oluşturma adımlarını şu şekilde geçiyoruz.

  1. Projeye isim belirleniyor.
  2. Minimum SDK Api 15 seçiliyor. Cihazların %97.3’ü destekler olmuş güzel bir oran.
  3. Empty Activity seçiliyor. Hızlıca kurulsun, temiz olsun, çabuçak bitsin deyi.
  4. Finish ile bitiriliyor.

MainActivity.java dosyamıza arkadaş bir java dosyası oluşturup adını AcilisEkrani olarak belirliyor ve içerisine aşağıdaki kodları yapıştırıyoruz.

Dizin yapısının daha anlaşılır olduğu github sayfasını inceleyebilirsiniz.
https://github.com/tasarhane/splashscreen

Res klasörü altındaki Layout klasörü içerisine yeni bir xml dosyası oluşturarak adını acilis_ekrani.xml yapıyor ve içerisine aşağıdaki kodları atıyoruz. Aşağıdaki kodlar belirlediğiniz bir metni siyah arkaplan üzerinde ve ortalı bir şekilde yer almasını sağlayan basit bir yapı.

Son olarak AndroidManifest.xml dosyasında splash screen, açılış ekranımızın kategorisini LAUNCHER ve MainActivity’ninkini DEFAULT yaparak işlemleri bitiriyoruz.

İnsansı Robotlar. Bir Firma Bunu Yapıyorsa Nasa Seviyesini Siz Hayal Edin!

İnsansı Robotlar. Robot teknolojisinin şimdisi. Gelecek nesilleri nelerin beklediğini hayal etmeye gerek yok. Neden derseniz zaten filmlerde gördüğünüz her şey yapılacağının bir işareti olarak karşımıza çıkıyor.

 

Php ile Csv dosyaları içinde Arama Yapmak

Php ile csv dosyaları içerisinde arama yapma işlemlerine göz atacağız. Öncelikle tam yolu bilinen bir csv dosyasının içindeki tüm verileri listelemek istersek kullanmamız gereken kod bloğu örnekteki şekildedir.

Eğer daha başka işlemler veya tekrar erişmek için gerekirse diye dosya yolu değişkene atanabilir. Kod bloğu aşağıdaki gibi değişecektir;

Kısaca yaptıklarımız dosya yolu belirtmek, dosyayı açmak, dosya verilerine erişmek ve bu verileri satırlar halinde ekrana yazdırmak sonrada dosyayı kapatmak.

Php ile Csv Dosyasında Arama Yapmak

Tam yolu bilinen tek bir csv dosyası içerisinde belli bir metni bulmak istiyorsak kullanmamız gereken kod bloğu aşağıdaki gibidir.

Yukarıdaki kodda csv dosyası içerisindeki tüm verileri tarayarak $terim değişkeniyle tanımladığımız metni içeren verileri döndürdük. strpos php fonksiyonu bu konuda ki yardımcımız oldu. Strpos fonksiyonu ile ilgili daha detaylı bilgi için tıklayın.

fgetcsv($dosya, 1000, “,”) bu fonksiyondaki 1000 ne diye merak edenler için verinin içerdiği azami karakter sayısını ifade eder. Eğer csv dosyasındaki verileriniz 10 karakteri geçmiyorsa bu kısmı 10 veya başka değerler yazmanızda sakınca yoktur. Virgülde csv dosyasındaki ayırma işlemini yapmış olduğunu belirtiyor. Bazı csv dosyalarında ayraç noktalı virgül olabilmektedir o zaman ; kullanılmalıdır.

Php ile Csv Dosyasının Belirli Bir Sütununda Arama Yapmak

Örneğin bir csv dosyamız var ve bunun 2. sütununda soyisim değeri mecut bizde bu sütunda içerisinde oğlu terimi geçenleri listelemek istiyoruz. Aşağıdaki kod öbeği ile 2. sütun içerisinde arama yapılmaktadır.

 

Birden Fazla Csv Dosyasında Arama Yapma İşlemleri

Birden fazla csv dosya içerisinde belirli bir terimi aramak içinde işlemler hemen hemen aynı. Öncesinde dosyaların konumunu belirtmek ve bu konumda bulunan dosyaları listelemekle ilgili ufak işlemler yapacağız.

Php ile Klasördeki Dosyaları Listeleme
İşe csv dosyalarımızın olduğu klasörü tanımlayarak başlıyoruz. Örnek kodlar tanımladığımız klasör içindeki csv dosyalarını listeleyecektir. Php dosyanızın bulunduğu dizini referans almaktadır.

 

Harddiskin farklı bir sürücüsündeki dosyaları listelemek için ise dizinden önce sürücü harfini belirtmemiz yeterli D: veya E: gibi.

 

Klasördeki bütün CSV Dosyalarının içinde Arama

Örnekteki kod bloğu ile klasörde bulunan bütün csv dosyaları içerisinde tanımladığımız $terim değişkeni ile ifade edilen metin aranacaktır;

 

Klasördeki bütün CSV Dosyalarının Belirli Sütununda Arama Yapma

Daha fazla açıklamaya ihtiyaç duyulursa ya da herhangi bir sorununuz için yorum kısımından iletişime geçmekten çekinmeyin.
İyi çalışmalar.

Android Mesaj Gösterme, Toast Kodunu Metod ile Kullanmak

Android uygulama geliştirme uğraşları esnasında sıklıkla ekranda mesaj gösterme ihtiyacı hissedilmektedir. Bu amaçlada kullanılan kod kalıbı aşağıdaki şekildedir.

Tekrar tekrar kullanılacak bu kod öbeğini her seferinde tekrar yazmak yerine bir metoda atayabilmek mümkündür.

Mesajımız her seferinde farklı olabileceğinden tek değişkenli, parametreli bir metod aşağıdaki şekilde yazılabilir.

Bu tek değişkenli metodumuzu kullanımı ise şu şekilde;

Toast kelimesine yakın ve onu hatırlattığı için tost ismi verdiğimiz metodu siz istediğiniz gibi adlandırabilirsiniz. Örneğin mesaj, mesajGoster ya da sadece msj diyebilirsiniz.

Eğer sıklıkla kullanılması düşünülüyor ve gösterim süresinin kısa veya uzun olmasıda değişkene atanmak isteniyorsa;

Bu sayede tost metodu yazı özellikli mesaj ve sayı özellikli sure değişkenlerine sahip oldu.
Anlaşıldığı üzere LENGTH_SHORT ekranda kalma süresinin kısalığını ifade etmekte, LENGTH_LONG ise uzun süreli gösterimi.
Kullanımı şu şekilde;

Virgülden sonraki 1 mesajın uzun gösterileceğini belirtmiş oldu. 0 olsaydı daha kısa süreli gösterilecekti. Aslında metodumuza göre 0’dan başka ne yazarsanız uzun süreli gösterime sahip olacaktır. Çünkü 0 ise kısa değilse uzun süreli göster dendi kendisine.

Bu arada metodlarla ilgili detaylı bilgi için;
http://java.com.tr/index.php/2014-03-20-14-22-35/temel-java/18-java-methods

 

Yeni Toast Mesajını Derhal, Anında Göstermek

Tekrar eden tıklamalar, dokunmalar sonucu arka arkaya beliren mesajlar can sıkıcı olabilmektedir. Yani bir kullanıcı 20 kere mesaj gösterilecek düğmelere dokunduğunda (niye yapacaksa öyle bir şey demeyin) hepsi tıklanan sıralamada gösterilinceye kadar uzunca bir süre gececektir.
Bunun yerine başka bir düğmeye dokunulduğunda (yeni bir toast mesajı tetiklendiğinde) önceki iptal olarak yenisinin gösterildiği bir metod yazılabilir.

Bunun için öncelikle MainActivity’nin onCreate metodundan önce Toast tanımlaması yapılmalı.

Şimdi yeni Toast Metodumuz aşağıdaki şekilde olacaktır. onCreate metodundan sonra konumlandırabilirsiniz.

Basitçe yapılan global tanımlama ile t isminde Toast tanımlayıp metodumuza t boş değilse onu iptal etmesini söylemek ve verilen bilgilere göre yeni Toast mesajını göstermesi sağlamak şeklindedir.
Böylelikle diğer mesajların kaybolmasını beklemeden yeni mesajlar gösterilebilecektir.

Kullanımda ise herhangi bir değişiklik yok. Mesajınızı ekrana çağırmak için;

Tabi String olduğu sürece Toast mesajı için metin yerine kodda kullanılabilir;

Kolay gelsin.

Dip, Dp, Sp Nedir? Android Tasarım Terimleri Ölçüler

Android Tasarımlarında Ölçü Birimleri

Android tasarımlarında yani layout, xml dosyalarında belirli öğelerde ölçü değişikliği yapmak istediğimiz zaman kullanabileceğimiz farklı birimler vardır. Bunlar sırasıyla;

  • dp, dip – density independent pixels
  • sp – scale independent pixels
  • pt – points
  • px – pixels
  • mm – milimeters
  • in – inches

Dp, Dip Nedir?

Yoğunluk bağımsız piksel olarak çevirebileceğimiz dp veya dip cihaz ekranının fiziksel yoğunluğuna bağlı soyut birimlerdir.
Bu tanımlamayı tamamlayabilmek için dpi kullanacağız ki oda dot per inch yani inç başına düşen nokta sayısı demek oluyor. 160dpi bir ekranda 1dp 1 piksele eşit olmaktadır. 320dpi bir ekranda ise 1dp 2 piksele eşit olacaktır. Anlaşılacağı üzere dp orantısal bir birimdir ve farklı ekranlarda aynı oranları yakalayabilmek için tasarlanmıştır.

Dp Formulü / Hesaplaması şu şekilde yapılmaktadır;
dp = (piksel genişlik * 160) / dpi

Örnek olarak 1200 piksel genişliğe sahip 320dpi bir android cihazda genişlik değeriniz 600dp olacaktır.
(1200 * 160) / 320 = 600dp

Aşağıdaki kodda 20dp margin değeri 160dpi bir ekranda 20piksel ve 320dpi bir ekranda ise 40piksel olacaktır.

<Button android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/clickme”
android:layout_margin=”20dp” />

Videolu açıklama isterseniz Android tarafının hazırladığı şu videoya göz atabilirsiniz. Android video derslerinden density independent pixels.

Ekran dokunuşlarında yeterli alanı sağlamak için önerilen parmak genişliği 50dp’dir.

 Sp Nedir?

Ölçek bağımsız piksel, dp birimine benzer olup aynı zamanda kullanıcının font boyutu tercihi ile ilişkilidir bu nedenle yazı boyutları tanımlamaları için daima sp kullanımı tavsiye edilmektedir!

<TextView android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:textSize=”20sp” />

Android Emulator Hatası HAXM Çözümü

Android uygulama yapımına yeni başlayanların bir sorunu olan android emulator hatası HAXM çözümü için aşağıdaki adımları takip etmeniz gerekmektedir.
Muhtemel android emulator hata mesajınız
Please ensure Intel HAXM is properly installed and usable hatası
cpu acceleration status: hax kernel module is not installed! hatası
Android – ERROR: x86 HAXM kernel module is not installed
gibi farklı şekillerde olabilir.

AMD Kullanıcıları için android emulator hatası çözüm adımları

Tıklanması gereken her yer için tıkla ve benzeri terimler kullanmadan açılan pencerelerde tıklanması gereken yerin ismi direk telaffuz edilmiştir.

  1. AVD Manager
  2. Create Virtual Device
  3. Nexus 5 seçili iken Clone Device
  4. Yeni isim verip ayarları aynı bırakarak Ok
  5. Next
  6. Show downloadable system images
  7. Lollipop / 21 / armeabi-v7a / Android 5.0 -> Download
  8. İndirdiğiniz versiyonu seçip Next
  9. Finish
  10. AVD Manager Kapat
  11. Run App
  12. Launch Emulator
  13. Oluşturulan Klonu Seç ve Ok

Android Emulatorün Daha Hızlı Çalışması için

2 GB rame sahip bir bilgisayarda yapılan denemeye göre 3. adımda klonlanan cihazı farklı seçebileceğiniz (mesela Nexus S) gibi 7. adımda 21. API yerine 17. API’yi (ya da daha düşük api hedefliyorsanız onu) seçerseniz ilk açılış ve genel kullanım daha hızlı olacaktır.

4. adımda ayarları aynı bırakabileceğiniz gibi kullanmayacağınız kamera ve sensör özelliklerini kaldırabilirsiniz. Düşük sistemli bilgisayarlar için ne kadar az ihtiyaç olursa verimlilik artacaktır.

 

Android Emulator Hatasının çözüm adımlarını ilgili videoyu izleyerek gerçekleştirin.

 

Android Emulator Hatası Devam Eden Sorunlar

Cannot set up guest memory ‘android_arm’: Invalid argument
Hatası alırsanız klonladığınız cihazın ayarlarına girerek tanımladığınız ram değerini düşürün.
Android Virtual Device Manager Açın
Cihazınız hizasında sağdaki kalem simgesine tıklayın
Show Advanced Settings > Memory and Storage > Ram yolunu izleyerek değeri düşürün
2 GB ramli bir bilgisayarınız varsa değeri 512ye kadar düşürmeniz gerekebilir. Denenen 2GB ramli sistemde 768 mb değeriyle çalışmada sorun çıkmamışıtır.
Finish

Tekrar Run’a tıklayıp cihanızı seçerek emulatörünüzü başlatabilirsiniz.
Android emulatörün ilk açılışı biraz zaman alacaktır.
Kolay gelsin.

 

İlgili bağlantılar üzerinden benzer android emulator hataları ve diğer android hataları ile ilgili görüşlere ulaşılabilinir.

http://stackoverflow.com/search?q=android+emulator

https://groups.google.com/forum/#!searchin/android-developers/android$20emulator

Sesi Yazıya Çevirme Speech to Text Android Dersleri

Android Uygulama Yapımı Sesi Yazıya Çevirme Dersleri
Speech to Text
Ufak bir kütüphane olması amacıyla hazırlanan bu android dersleri yazısında konuyla ilgili araştırmalar yaparken bulunan faydalı kaynaklar bir araya toplanmaya çalışılmıştır.

 

Türkçe kaynaklar
http://www.akilliyazilim.org/category/androiddersleri
https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/301

Android Speech To Text API

Android Speech to Text Tutorial

Başka bir örnek
http://www.learn2crack.com/2013/12/android-speech-recognition-example.html

Standart arayüz yerine özel dialog kutusu ile ses algılama uygulaması yapımı
http://www.truiton.com/2014/06/android-speech-recognition-without-dialog-custom-activity/

Ses algılama özelliğinin durması sorunu/hatası ile ilgili görüşler
http://stackoverflow.com/questions/13670378/voice-recognition-stops-listening-after-a-few-seconds

Önemli bağlantılar
http://developer.android.com/reference/android/speech/package-summary.html

 

Diğer farklı ortamlar için ses tanıma, ses algılama sistemleri, yöntemleri.

Youtube mp3 indirme Mp4 çevirici site youtube dönüştürücü

Youtube mp3 indirme, mp4 çevirici site youtube dönüştürücü