Test uygulamaları geliştirme konusunda belirli bir yetkinliğe ulaştım..Test uygulamasına ihtiyaç duyan bir akademisyen arkadaş blog sitem üzerinden bana ulaştı ve basit bir android test uygulaması talep etti.Bilimsel bir araştırmada yardımcı olmak üzere…
Talebe uygun bir uygulama tasarladım.Uygulama internet kullanmayacaktı ve yerel cihaz üzerinde işlem yapacaktı..
Ben bunu daha önce denememiştim..Dosyalarımı internet üzerinden işliyorum genellikle…
Ama araştırmam sonucu android cihazlar için, cihaz üzerinde dosya oluşturma, yazma ve okuma yapılabildiğini tespit ettim…
Yaptığım uygulamada bir veri dosyası *.csv formatında oluşturup cihaza kaydedliyor ve uygulamanın her kullanılışında güncellenerek ,eski tuttuğu verileri de koruyarak kaydediyor…
Bunun gibi bir sisteme ihtiyaç duyabilecek adobe air android geliştiricileri olabilir diyerek kullandığım dosya sistemi hakkında birkaç satır yazmaya karar verdim…

Adobe air actionscript 3.0 ile dosya işlemleri için

file systemve filereferance importlarını kullanıyoruz…

Kullandığımız actionscript 3.0 kodları altta:

import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.FileReference;
import flash.utils.ByteArray;
import flash.filesystem.*;

var =File.documentsDirectory.resolvePath("UYGULAMA_DOSYASI");
file.createDirectory();
//ANDROİD CİHAZIN İÇERİSİNDE //UYGULAMA_DOSYASI ADI İLE BİR KLASÖR OLUŞTURUYORUZ...
//ALT SATIRDA csvyarat ADLI BİR FONKSİYON TANIMLIYORUZ..
//İÇERİSİNDE ÖNCELİKLE DAHA ÖNCE OLUŞTURDUĞUMUZ BÖYLE BİR

//DOSYA VAR MI ONU SORGULUYORUZ..DOSYA YOKSA OLUŞTURUYORUZ...
function csvyarat():void{
csv:String='header1;header2;header3;header4';
var dir:File = File.documentsDirectory;
dir= dir.resolvePath("UYGULAMA_DOSYASI/testuygulamasi.csv");
if(dir.exists){

//ALTTAKİ STREAM ÖZELLİĞİ İLE DOSYAYI OLUŞTURDUĞUMUZ KLASÖR
//İÇİNE YAZDIRIYORUZ...

var stream: FileStream = new FileStream();
stream.open(file, FileMode.WRITE);

stream.writeUTFBytes(csv);
stream.close();

}
csvyarat();
//DOSYAYI GÜNCELLEMEK İSTERSEK DE BU KEZ URL LOADER İLE MEVCUT //DOSYA İÇERİĞİNİ ÇAĞIRIP BİR ARRAY DEĞİŞKENİNE //YÜKLÜYORUZ..SONRA TEKRAR CSV STRİNGİNE BU ARRAY DEĞİŞKENİNİ //DAHİL EDİP GÜNCELLİYORUZ:

function csvoku():void{
var myData:Array=new Array();
var dir2:File = File.documentsDirectory;
dir2 = dir2.resolvePath("TEST_DOSYASI/testuygulamasi.csv");
if(dir2.exists){
trace("var2");
var myloader:URLLoader=new URLLoader();
myloader.addEventListener(Event.COMPLETE,onloaded);
myloader.load(new URLRequest(dir2.url));
function onloaded(e:Event){

///CSV DOSYANIN İÇERİĞİNİ ALMAK İÇİN SPLİT İLE VİRGÜLLÜ PARANTEZ ///KULLANMAMIZ GEREKİYOR...
myData=e.target.data.split(",");
trace(myData);

}
}
//CSV STRİNG DEĞİŞKENİNE myData ARRAY INI EKLEDİKTEN SONRA //TEKRAR csvyarat() İÇERİĞİNDEKİ GİBİ BİR FİLE İŞLEMİ İLE //YAZDIRABİLİRİZ..csv içerisine myData yı eklemek için:
//csv=myData+"\n"+'yeni veriler...';

Bu kodlarla android cihaz üzerinde bir klasör ve bir csv dosya oluşturabiliyoruz..Ancak dikkat edilmesi gereken nokta android cihazınız için dosya yazma okuma izinlerini tanımlamanız gerekiyor..Bunu uygulama xml dosyası içerisinde permissiions ayarlamalarını yaparak uygulayabilirsiniz…Cihazınız android 6 ve sonrası sürümde ise android izinlerini kullanıcıya sorarak açmanızı sağlayan native extensionlar eklemeniz gerekir….
Daha fazla bilgi gerekirse bazı konu ile ilgili linkleri ekliyorum:
Dosya izinlerini açmayı sağlayan native extension için:

https://github.com/myflashlab/PermissionCheck-ANE

Kullandığım kodlar hakkında bilgi almak için:

https://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7fe4.html

https://stackoverflow.com/questions/7316416/writing-to-csv-file-in-as3

http://richard-heck.blogspot.com/2011/01/how-to-write-file-to-android-filesystem.html

Umarım faydalı bir yazı olmuştur…Adobe air ile pek çok işlem daha kolay yapılabiliyor…Native extensionlar sayesinde kodların sadece projemizin özel bölümleriyle tasarlanamasına odaklanabiliyoruz…Teknik bazı şeyleri çözmülemede pratiklik sağlıyor…
Adobe air sistemi daha ne kadar andoid ve ios desteğini sürdürebilecek bakalım…Şimdilik destek devam ediyor…
Sonraki yıllarda daha üst versiyonlarda zorlanılacak mı bu compiler için izleyeceğiz…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir