Android kullanıcıdan kullanıcıya veri aktarımında server şart mı ?

Başlatan unknownperson, 11 Eylül 2017, 15:34:42

unknownperson

Merhabalar, Android uygulama yazmak istiyorum ve yeni yeni başladım diyebilirim. Aklıma takılan şimdi diyelim uygulamada kamerayı kullandırıp kullanıcıya fotoğraf çektirdim. Bu fotoğrafı başka bir kullanıcıya göndermem için fotoğrafı tutacağım bir server'ım olması gerekiyor mu ? Yani kısacası google maps'te ilerleyen biri bir noktaya işaret koydu ben bu noktanın x-y koordinatlarını nerede tutucam ? Bu datalar nerede kaydediliyor ?  :o

E-x8

Her Client aynı zamanda Server olmaması için bir yapının tek Server'i olur. Bu sayede Client güvenliği sağlanır ve hareketler tek el üzerinden kolayca kontrol edilebilir.

Depolama kısmı ise program ile ne yapmak istediğiniz alakalı olarak değişir. Her şeyi kalıcı yapmak istiyorsanız veritabanı çözümlerinden birini kullanmalısın. Server'a gelen bilgi önce kaydedilir ve gerektiğinden(3-4 ay sonra) bu bilgi tekrardan çıkartılabilir veya Server'a gelen bilgi direkt karşı tarafa aktarılarak hareketler izlenmez fakat iş tamamlanmış olur, gerektiğinde bu bilgi tekrardan dışarı çıkartılamaz. Hangi çözüm sana uygunsa onu kullanabilirsin.

Detaylı açıklamanın kısa cevabı :
Veri aktarımında Server şart.

engerex


kimlenbu

Aynı sorunu ben de yaşadım. Wifi dan bağlı iken sıkıntı yok ama gsm üzerinden bağlıyken bulduğun ip'ye dışarıdan direkt erişimin olmuyor. Spesifik bir uygulama yapıp cihazlara sabit ip alırsan server kullanman gerekmez.

Ama herkesin kullanacağı bir program yapacağım dersen ne yazık ki server şart.

muhendisbey

Server'dan kastınız yeni bir bilgisayar ise şart değil. Server hizmeti kurulumu android cihaz içerisinde de olabilir. Lakin cihazınız her zaman internet ya da lokal çalışıyorsanız her zaman wifi bağlantısı olacak mı? Ne kadar sorgu olacak? Paket büyüklüğü ne kadar sorularına cevap verebilmeniz gerekir.


Yoksa kameradan foto çekersiniz android cihazınızda saklanır, sorgu gelirse cevap olarak sizin fotoğrafı adama döndürür. Böyle birşeyde server şart değil lakin:
100 kullanıcı var 10 tanesi aynı anda sorgu attı. Her birine android cihazın o fotoğrafı döndürmesi zaman alır. Sonuçta işlem gücü ve bant genişliği serverlara nazaran çok sınırlı.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

unknownperson

Yeni konu açmadan aynı konu içersinde iki soru daha sormak isterim.
1) Bu gmail vb. yerlere share et özelliğinde server gerekmiyor sanırım ? Biz client gmail server olacak internet bağlantısıyla datayı yollucam ?

2) Arkaplanda sürekli mikrofon açık olursa çok şarj yer mi ?

muhendisbey

1. si google bu tür kullanımlara izin vermez. Sizin için belirlediği işlem hacminden fazla işlem yapamazsınız, ödeme ister.
2. si pil tüketimi uygulamanızla ilgili. Yani sürekli bir kayıt, sürekli bir internet erişimi varsa çok tüketir. Fakat belirli bir kelimeyi aratırsanız tüketim düşer. Bu durumda da ses üzerinde yapılacak işlemler yani algoritma şarj süresinde etkili olur.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

unknownperson

yani 25 dolar haricinde bir ücretlendirme de yapıyor herhangi bir yazıyı mail olarak göndermede.
Mesela belirli bir kelimeyi aratmak için sürekli kayıt yapması gerekmiyor mu ? Siz Samsung dediğinizde diyelim belli işlemler yapması gerekiyor bunun için mikrofon sürekli açık halde olup demenizi beklemiyor mu ?

muhendisbey

Sürekli kayıt yapması gerekmiyor tabi. En azından düşündüğünüz şekilde değil. Bir ring buffer'da data streaming dediğimiz olayda veri sürekli olarak akarken içerisinden kendine uygun kodu ararsınız. Eşleşme sağlanırsa asıl kaydı alırsınız. Ondan önceki hiçbir ses kayıt altına alınmamış olur. Yoksa ne telefonun RAM'i yeter ne de flash hafızası.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

unknownperson

Tamam onda sıkıntı yok kayıt her zaman alınmıyor ama mikrofon sürekli kullanılıyor sonuçta benim sorduğum hafızaya kayıt yapılması değil, mikrofonun sürekli açık olması yani o kelime gelicek mi gelmicek mi diye telefonun kullanıcıyı dinlemesi çok şarj yer mi ?

muhendisbey

O noktada kullandığın algoritma önemli olacak. Telefona şu kelimeyi bul diyemezsin. Aldığın sesi işleyip benzerlik oranına bakacaksın. Bir algoritma kullanırsın hemen bulur fazla şarj tüketir. Başka bir algoritma kullanırsın zor bulur çok az şarj tüketir.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

sovalye

Alıntı yapılan: unknownperson - 13 Eylül 2017, 14:57:31
Tamam onda sıkıntı yok kayıt her zaman alınmıyor ama mikrofon sürekli kullanılıyor sonuçta benim sorduğum hafızaya kayıt yapılması değil, mikrofonun sürekli açık olması yani o kelime gelicek mi gelmicek mi diye telefonun kullanıcıyı dinlemesi çok şarj yer mi ?


Kesinlikle yer ama bu is genelde islemciyle yapilmiyor diye biliyorum. Ice40 tarzi minik fpga lerle surekli dinleme yapiyorlar. Eger dinlenen anahtar kelime gecerse islemci uyandirilip kalani islemciyle isleniyor olmasi lazim. Mesela siri veya ok google now icin fpga ile tarama yapiyor bunlar gecerse bir sonraki kelime icin islemci uyaniyor. Yada islemcilerin guc tasarrufu icin olan cekirdekleri onlari da dinleme yapmak icin kullanabilirler.

asimavi

Server gerekli evet ama depolamak için değil iki kullanıcı arasında bağlantı kurmak için.. kullanıcıların arasında resim ses vs gönderecekse sunucuya up down etmeden kendi aralarında bağlantı kurdurabilirsin ancak türkçe kaynak yok google dan arayabilirsin android p2p (per-to-per)olarak aratabilirsin...

unknownperson

Bu androiddeki bellek olayını anlamış değilim. Şimde ben main activityde bir switch'e sahibim. Bu switchi on konumuna çekiyorum sonra telefondan geri butonuna ya da anasayfa butonuna basıyorum. Uygulamama geri dönünce switch bazen on bazen off. Birinci sorum switch konumunu bellekte bir yerde tutamaz mıyım tutayım ki uygulamayı kapatıp tekrar açıldığında kaldığı konumdan devam etsin ? İkinci sorum telefonda geri tuşuna basınca, ana sayfaya dönme tuşuna basınca ve görev yöneticisinden uygulamayı kapatınca uygulama yazılımın neresinde kalıyor ? Çalışıyor mu çalışmıyor mu ?

kimlenbu

@unknownperson , event ları kullanman gerekiyor. onStart, onStop, onDestroy, onPause, onResume diye her farklı durum için önlem alabilirsin. Belleğe güvenmek yerine switch durumunu database'e yazarsın, ilgili ekran geldiğinde durumunu buradan kontrol edip güncellersin.