Karmaşık Verileri Aktarma
Karmaşık Verileri Aktarma
Karmaşık türleri hizmetlere iletmek ve hizmetlerden geçirmek, Java ilkel türlerini geçirmekten daha fazla iş gerektirir. Bu çalışmaya başlamadan önce, AIDL’nin ilkel olmayan türler için desteği hakkında bir fikir edinmelisiniz:
• AIDL, String ve CharSequence’ı destekler.
• AIDL, diğer AIDL arayüzlerini geçmenize izin verir, ancak referans verdiğiniz her AIDL arayüzü için bir içe aktarma ifadesine sahip olmanız gerekir (referans verilen AIDL arayüzü aynı pakette olsa bile).
•AIDL, android.os.Parcelable arayüzünü uygulayan karmaşık türleri geçmenize izin verir. Bu türler için AIDL dosyanızda bir import ifadesi olması gerekir.
• AIDL, birkaç kısıtlama dışında java.util.List ve java.util.Map’i destekler. Koleksiyondaki öğeler için izin verilen veri türleri arasında Java ilkel, String, CharSequence veya android.os.Parcelable bulunur. Liste veya Harita için içe aktarma ifadelerine ihtiyacınız yoktur, ancak Parcelables için bunlara ihtiyacınız vardır.
• String dışındaki ilkel olmayan türler, bir yön göstergesi gerektirir. Yön göstergeleri arasında giriş, çıkış ve giriş bulunur. in, değerin müşteri tarafından ayarlandığı anlamına gelir, out, değerin hizmet tarafından ayarlandığı anlamına gelir ve inout, değeri hem istemcinin hem de hizmetin ayarladığı anlamına gelir.
Parcelable arabirimi, Android çalışma zamanına sıralama ve sıralamayı kaldırma işlemi sırasında nesnelerin nasıl seri hale getirileceğini ve seri durumdan çıkarılacağını söyler. Liste, Parcelable arabirimini uygulayan bir Kişi sınıfını gösterir.
Parcelable arabirimi, marshaling/marshalling işlemi sırasında nesnelerin hidrasyon ve dehidrasyon sözleşmesini tanımlar. Parcelable arayüzünün temelinde Parcel konteyner nesnesi bulunur.
Parcel sınıfı, Android içinde süreçler arası iletişim için özel olarak tasarlanmış hızlı bir seri hale getirme/seri hale getirme mekanizmasıdır. Sınıf, üyelerinizi kapsayıcıya düzleştirmek ve kapsayıcıdan üyeleri geri genişletmek için kullandığınız yöntemleri sağlar. İşlemler arası iletişim için bir nesneyi uygun şekilde uygulamak için aşağıdakileri yapmalıyız:
1. Parcelable arayüzünü uygulayın. Bu, writeToParcel() ve readFromParcel() öğelerini uyguladığınız anlamına gelir. Write yöntemi nesneyi pakete yazacak ve read yöntemi nesneyi paketten okuyacaktır. Özellikleri yazma sıranızın, onları okuma sıranızla aynı olması gerektiğini unutmayın.
2. Sınıfa CREATOR adıyla statik bir final özelliği ekleyin. Özelliğin android.os.Parcelable.Creator<T> arayüzünü uygulaması gerekir.
3. Parcelable için, Parcel’den nesneyi nasıl yaratacağını bilen bir oluşturucu sağlayın.
4. Projenizin kök dizininde project.aidl adlı bir dosyada Parcelable sınıfları tanımlayın.
AIDL derleyicisi, AIDL dosyalarınızı derlerken bu dosyayı arayacaktır. Android Eclipse eklentisi, project.aidl dosyasını oluşturmak için çağırabileceğiniz bir araç sağlar. Aracı çağırmak için Eclipse’de projenize sağ tıklayın ve Android Araçlar ➤ Parçalanabilir sınıflar için Aidl önişleme dosyası oluştur’u seçin. Project.aidl dosyası örneği Listeleme’de gösterilmektedir.
■Not: Parcelable’ı görmek şu soruyu tetiklemiş olabilir: Android neden yerleşik Java serileştirme mekanizmasını kullanmıyor? Android ekibinin, Java’daki serileştirmenin Android’in süreçler arası iletişim gereksinimlerini karşılamak için çok yavaş olduğu sonucuna vardığı ortaya çıktı. Böylece ekip, Parcelable çözümünü oluşturdu. Parcelable yaklaşımı, sınıfınızın üyelerini açıkça seri hale getirmenizi gerektirir, ancak sonunda, nesnelerinizi çok daha hızlı seri hale getirirsiniz.
excel’de karışık verileri düzenleme
Excel CSV noktalı virgül
excel’de veri çözümleme ekleme
CSV virgülle ayrılmış değerler
sayısal veriler üzerinde filtre yapılırken aşağıdaki filtreleme türlerinden hangisi seçilmelidir?
excel csv (virgülle ayrılmış çevirme)
CSV dosyasını Excel’e çevirme
Pivot Tablo oluşturma
Ayrıca, Android’in verileri başka bir işleme aktarmanıza izin veren iki mekanizma sağladığını unutmayın. Birincisi, bir niyeti kullanarak bir aktiviteye bir paket iletmek ve ikincisi, bir Hizmete bir Parselable iletmektir. Bu iki mekanizma karıştırılmamalı ve birbirinin yerine geçemez. Yani Parcelable’ın bir aktiviteye geçirilmesi amaçlanmamıştır. Bir aktivite başlatmak ve ona biraz veri aktarmak istiyorsanız, bir paket kullanın. Ayrıştırılabilir, yalnızca bir AIDL tanımının parçası olarak kullanılmak içindir.
Gösterildiği gibi, project.aidl dosyası, projenizdeki her Parcelable için bir giriş içerecektir. Projeyi oluşturan aracın olduğunu unutmayın. SDK’nın 1.0 sürümüyle birlikte gelen aidl dosyası, project.aidl dosyasında yorumlar yayınlar. Projenize bir Parcelable eklerseniz ve proje derlenemezse, yorumları dosyadan kaldırmanız gerekir (yalnızca Parcelable girişlerini bırakarak). Yorumları kaldırdıktan sonra, projeyi temizlemeniz ve Eclipse’de yeniden oluşturmanız gerekecektir.
Şimdi uzak bir serviste Person sınıfını kullanalım. İşleri basitleştirmek için, IStockQuoteService’imizi Kişi türünde bir giriş parametresi alacak şekilde değiştireceğiz. Buradaki fikir, müşterilerin fiyat teklifini kimin istediğini söylemesi için hizmete bir Kişi iletecek olmasıdır. Yeni IStockQuoteService.aidl, Listeleme’ye benziyor.
getQuote() yöntemi artık iki parametreyi kabul ediyor: hisse senedinin hisse senedi simgesi ve isteği kimin yaptığını belirtmek için bir Kişi nesnesi. Parametreler ilkel olmayan türler olduğu için parametreler üzerinde yön göstergelerine sahip olduğumuzu ve Kişi sınıfı için bir import ifademiz olduğunu unutmayın. Kişi sınıfının da hizmet tanımı (com.syh) ile aynı pakette olduğunu fark edin.
Bu uygulama ile önceki uygulama arasındaki tek fark, artık hisse senedi değerini bir çift değil, bir dizi olarak döndürmemizdir. Kullanıcıya döndürülen string, Person nesnesinden istekte bulunanın adını içerir, bu da istemciden gönderilen değeri okuduğumuzu ve Person nesnesinin hizmete doğru bir şekilde iletildiğini gösterir.
Person nesnesini hizmete ileten bir istemciyi uygulamak için, istemcinin ihtiyaç duyduğu her şeyi istemci projesine kopyalamamız gerekir. Önceki örneğimizde ihtiyacımız olan tek şey IStockQuoteService.aidl dosyasıydı. Şimdi Person.java dosyasını da kopyalamamız gerekiyor çünkü Person nesnesi artık arayüzün bir parçasıdır.
İki dosyayı istemci projesine kopyaladıktan sonra, daha önce tartıştığımız hata nedeniyle, project.aidl dosyasını yeniden oluşturmanız ve yorumları kaldırmanız gerekir. Ayrıca, yorumları kaldırdıktan sonra bir temizleme ve yeniden oluşturma işlemi yapmanız gerekeceğini unutmayın. Liste, hizmeti çağıran müşteri kodunu gösterir.
İstemcideki ilginç yöntem, onServiceConnected() yöntemidir. Gösterildiği gibi, yeni bir Kişi nesnesi oluşturup Yaş ve Ad özelliklerini ayarlıyoruz. Daha sonra servisi yürütürüz ve servis çağrısının sonucunu görüntüleriz.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)