How do people test mobile data for mobile apps? - android

I was wondering how people typically test mobile data for mobile apps. We currently only test on WiFi and that has caused problems in production. Are there services that allow us to use all of our test devices on a mobile data network? Or can we really only buy a sim card for every test device? I just think that's rather clunky, especially since we only need data and not texting or calling. Or should WiFi be sufficient?
Any ideas or thoughts are welcome.
Thanks in advance!

Typically people test apps based on data speeds used by their targeted audience but we should always use best cases on wifi/broadband and worst cases on 2G/3G mobile networks. there ary many tools and services/platorms free and paid that you can use online for testing apps on diffrent speeds they tell you everything from ping time to download time some of them are LoadRunner, NeoLoad, LoadUI or Webload and neoload i never used any of them but many of clients do use.but it's always good practice to have your own sim cards ready if you are planning to have more apps and more releases every now and then. Mark if it helps ..Cheers

You are speaking specifically about the issue of network impairment. What you are seeing is that the network you are testing on is likely both faster and cleaner than the intended network in production. Mobile devices have a longer "latch time" on the stack due to the characteristics of the network than the same application on a clean network. This higher latch time causes a higher percentage of resources to be dedicated to "ring 0" type activities, those that take priority and must be handled immediately, related to network. This means that the total resource pool that the application layer, "ring 3" activities can draw from is diminished. The net-net of all of this, you can bring down performance on a server with fewer mobile clients versus desktop.
There are a few paths here. The industry benchmark for impairment was the solution set from Shunra, particularly the hardware devices. Shunra was scooped up by HP a couple of years ago so if you want to go that route you are likely in the LoadRunner camp. With Shunra absent as an independent solution a number of players have added network impairment to their tools. I think both SOASTA and Neotys are in this camp.
There are some build your own models as well. You can use two small routers with a single line between them and then assign characteristics to this line related to speed and error rate which match the characteristics of mobile networks. You will need data for these - OOKLA is the default source for line profiles in the industry. You have what were the competitors to Shunra on the network simulation front: Ixia Communications, Spirent, Agilent. Their solution sets are much more geared at the OSI layer 2 crowd. There is also WANEM, an open source solution, but it lacks the complex modeling capabilities. Also, do not run it in a Virtual Machine - Network impairment needs a consistent and precise system clock, something that the virtualized clock in a virtual machine cannot provide.

Related

How to make several mobile devices (both iOS and Android) communicate without using internet

I am currently trying to develop a mobile application for both iOS and Android. It basically will be a game buzzer app, determining which of the players is granted a right to answer a specific questions.
The problem is that I struggle to determine which technology / framework I should use for that. Now, some details:
In this app there will be a "base" - it is the phone that gives
"start" signal for all the other players. Each buzzer pressed before this signal corresponds to a false start. Eventually, information
about which player is granted a right to answer or is penalized due
to false start should be displayed on the base device.
App is done for people who have no access to the internet. All the
communication should exists given ONLY mobile phones with no data
plan.
Max number of communicating devices is 9 (1 base and 8 players)
I investigated a lot of resources and this is what I discovered:
Regular WLAN with TCP sockets and etc won't help, since it assumes that all devices are connected to same wireless access point - it violates my requirements.
Regular bluetooth won't help either. This would work across a specific platform, but making Android talk to iOS is impossible.
Situation with Wi-Fi direct is same as with regular bluetooth. Both platforms support this, but Apple's MultipeerConnectivity framework works only with iOS devices.
Now the last option I am left with is BLE. Both platforms support this and are able to intercommunicate (acting both as central or peripheral devices). However, due to my requirements for an app, I assume that base device should act as peripheral, and according to (sometimes conflicting) articles on Internet, one can't connect several central devices to single peripheral.
Now, my questions:
I still assume I might have done some mistakes in the bullet points above, so please, correct me if I am somewhere wrong.
Now when I am left only with BLE option, are there any possible solutions to the above issue? Maybe it is possible to use all devices as centrals (?). I recently saw this example, where everything works cool. Sorry in advance, if I said something stupid.
Of course, there is a counterexample - FireChat, which employs OpenGarden's MeshKit. But the framework is not available. I tried communicating OpenGarden people, but no response. Does anyone know if it is planned to go opensource soon, or maybe there exists any analog of this?
Try the Hype SDK by Hype Labs. It's a multi-transport, multi-hop mesh SDK. It supports interoperable Bluetooth Low Energy (and other transports as well). The SDK is currently in private beta but will be made available upon approval of the subscription.

Sending a lot of data from PC to Android via Wi-Fi

I've developed applications which handle a connection between a PC and an Android phone via Wi-Fi. I try to send a lot of data really often. The TCP/IP protocol, which I used, allow me to achieve just low speed - around 1 Mbit/s. I found that with 802.11n standard we can achieve speed up to 150 Mbit/s. I've set my router to use only 802.11n standard, but I didn't notice any improvement.
What level of speed should be expected? I understand that part of data is lost, but is there any better solution? Any ideas? Where can I find some information to better understand this topic?
You should expect much better performance running 11n with TCP/IP, perhaps 20 Mbit/s in a good environment. But since it is radio, the medium is shared between all users of the air so it is not easy to give a good answer that is valid everywhere.
A tool to test your network throughput is Iperf available on Google Market for your Android device and on Sourceforge. You could use this to see if it is your application or external factors that might affect performance.
If you want to debug it further, you could use Wireshark together with a Wi-Fi sniffer card to see individual packets/transmission rates and retransmission.

JavaCard 3 in real world?

I'm currently working on my diploma work. Part of the work includes development of JavaCard applet for regular SIM cards. First option is to use JavaCard2.X API and use APDU commands to communicate with the applet. This might be very tricky as I need to develop client-app for android (which will be communicate with this applet) and that is so far possible only trough special - not so user friendly - API called Seek-for-android. (if I'm wrong, please correct me)
However, I also came across JavaCard3 Connected Edition, which provides much more options - for example web applets. Using webapps, deployed on SIM card and accessing them through browser in mobile device would be very convenient (of course developing such applet would be much easier as well). Problem is, that I can't find any mentions of Javacard3 being used in real life, or even on real SIM cards. I can't even find any mentions of possible date of release of such cards. Actually, there is almost no information on this topic.
So, my question is - do you know anything useful about this platform? Anything about real-life usage? Which card supports Javacard3? Are there any developers smart-cards, which are "JC3 enabled"? Will there be SIM cards with this platform in the future?
Thanks a lot for answers!!!
At JavaOne 2012 Moscow representatives of the JavaCard Oracle team demonstrated a prototype device with support for Java 3 Connected Edition based on Portable Security Token ES.
It's 2018 when I am writing this and I think this question needs a new answer.
Java Card 3 Connected Edition is dead in the water. It requires a large amount of RAM, which is still expensive even in the latest editions of the chips. SRAM takes large amounts of memory, and high end chips often still contain 8-10KiB of RAM max.
Furthermore, it was generated with the idea that web-developers would easily connect with it. This doesn't seem to have happened and it is questionable if a security device should be programmed by web-devs at all.
The additional overhead of the TLS protocol adds a heavy overhead without apparent benefit. The TLS protocol also requires a weird connection with the browser / end user. The idea that you can enter a PIN or password on a chip generated web page certainly has failed.
The idea of adding hardware support for browsers in general has failed. Before there were Java applets running in the browser, and the browser largely depended on add-ons. This has all gone away and it is very unlikely to return.
So even if RAM (or FRAM, MRAM, XCross or whatever hybrid memory solution will exist) ever comes cheap on a secure smart card processor, it is unlikely that JC 3 Connected will again see the light of day. Meanwhile Java Card Classic is still going strong although it is far from sexy at the moment - the OTN forum on Java Card is as good as dead (although OTN and sexy themselves are so far apart that they might as well exist on different poles, I certainly prefer SO).
There is no card in the field with JavaCard 3 right now. Everything under development.
But I recommend you to have a look to JSR 177. If Android supports it you can communicate with your applet by normal APDU commands.

Video-Calling Over WiFi without any intermediate server or 3rd party connection like Skype

I want to facilitate video-calling from the android device to another android device. My question is that can i connect the android WiFi device with the android WiFi device without any use of internet connection. I want to use it just like the Skype. is this possible or not? if it is possible then how can i implement it...can i get some code snippets as well???? Please give me link to download that app
First, your idea works completely different from Skype, which is completely dependent on a functional Internet connection for its core functionality.
Second, while you could create an ad-hoc WiFi network betweeen two Android devices, their range will be the limiting factor:
WiFi is intended as a short-range wireless medium. There's a reason nobody wanted the 2.4 GHz band (and therefore it is unlicensed): there's a significant noise and signal loss on these frequencies, noticeable even at short range.
Moreover, wireless equipment in mobile devices is engineered for power efficiency - which translates to lower broadcast power when compared to on-the-grid devices.
Also, the antennae in such devices are omnidirectional - this is rather useful for normal use, but again lowers your available broadcast power
Even if you had huge, high-quality directional external antennae connected to each device, pointing very precisely at each other (btw that also means each of them is stuck in one place; see e.g. this for a dish size calculator), you'd need to make some pretty drastic changes to their networking stack, as the latency inherent in long-distance comms will screw up TCP/IP pretty badly.
Even so, the setup would be very brittle, dependent even on the weather (water vapour absorbs significant amount of power in that part of the spectrum).

Is there a simple communication/message passing interface between two or more Android Devices?

I'm planning a simulation that calls for multiple communicating android virtual devices; is there a simple way to get two or more Android Virtual Devices to talk to each other? Thanks.
there are several Walkie-Talkie applications for the droid platform, many of which use only the wifi capacities in the android.
For instance :
Zello Walkie-Talkie , Voxer Walkie-Talkie
do a google search. construction workers love them because hte can talk to each other directly on a site that is out of cell range
There are also similar apps for 4G platforms. Contrary to popular misinformation (from may supposed experts who need to read up). In fact wimax and other 4G hand sets have a far better range for this (all alone out of tower range). They are far more powerful devices on EM levels produced.
https://play.google.com/store/apps/details?id=com.rebelvox.voxer&hl=en
4gwirelessforum.com/4g.../4g-walkie-talkie-nets-for-first-responders/
I expect the equivalent of "note passing" software for 'not so instant' messages..,that uses cooperative routing on 4G (ie, mesh networks) in software apps for 4G phones in the future. Imagine sending a message for free just by shoving it down a series of hops via the phones on interstate 5 (and possibly hitting a free hotspot at some point)
There is the C2DM project, but that is cloud to device, not device to device (as advertised anyway, I'm sure it couldn't be subverted for other use cases).
You can use text messages, and intercept them before they are passed to the messaging app. that could cost the user money.
You can use the amazon AWS SNS (simple notification service). There is an android SDK (as well as lots of other platforms). It's not free, but it's very, very cheap.
You could put your own messaging server in the cloud. Easy to write a simple prototype, not so easy to write a secure, scalable solution (which is another reason to look a SNS).

Categories

Resources