Friday, August 27, 2010

Terpanggang Matahari


4 Matahari di China - Cuaca panas membakar kulit tak membuat warga Polewali Mandar, Sulawesi Barat, Senin (23/8), beranjak. Mereka rela mengantre hingga hampir satu kilometer sejak usai sahur hingga sore hari demi bisa membeli tiga liter minyak tanah murah.


4 Matahari - Pasar murah yang digelar pemerintah setempat berlangsung di Lapangan Pancasila. Setiap orang yang membawa jeriken kosong bisa membeli minyak Rp 10 ribu per tiga liter. Kondisi tersebut terjadi lantaran sejumlah pangkalan dan subpangkalan di Polewali menaikkan harga Rp 5.000 hingga Rp 7.000, jauh di atas harga sebenarnya yaitu Rp 3.150 per liter.

Ada saja cerita selama warga mengantre. Misalnya, warga sudah berbaris rapi padahal pasar murah dibuka pukul 11.00 WITA. Beberapa orang yang berada tiba menjelang siang memotong tali antrean demi bisa mendapat giliran lebih awal. Tak sedikit yang menunggui jerikennya lantaran takut hilang.

Warga mendesak pemerintah dan Pertamina agar menertibkan para pemilik pangkalan yang nakal. Diduga, terjadi kolusi antara pengecer dengan pemilik pangkalan sehingga harga minyak tanah melejit.

Ketua Hiswana Migas wilayah Pare-pare Muhtar Mukti Rahim yang meninjau operasi pasar tersebut menegaskan, pihaknya tidak segan-segan menghentikan pasokan minyak kepada pangkalan yang terbukti menyelewengkan subsidi untuk memperkaya diri sendiri.

Tuesday, August 24, 2010

Licensing Server News

It’s been reported that someone has figured out, and published, a way to hack some Android apps to bypass our new Android Market licensing server. We’ll be saying more on this, but there are a few points that deserve to be made right now:


  • The licensing service, while very young, is a significant step forward in terms of protection over the plain copy-protection facility that used to be the norm. In the how-to-pirate piece, its author wrote: “For now, Google’s Licensing Service is still, in my opinion, the best option for copy protection.”


  • The licensing service provides infrastructure that developers can use to write custom authentication checks for each of their applications. The first release shipped with the simplest, most transparent imaginable sample implementation, which was written to be easy to understand and modify, rather than security-focused.


  • Some developers are using this sample as-is, which makes their applications easier to attack. The attacks we’ve seen so far are also all on applications that have neglected to obfuscate their code, a practice that we strongly recommend. We’ll be publishing detailed instructions for developers on how to do this.


  • The number of apps that have migrated to the licensing server at this point in time is very small. It will grow, because the server is a step forward.


  • 100% piracy protection is never possible in any system that runs third-party code, but the licensing server, when correctly implemented and customized for your app, is designed to dramatically increase the cost and difficulty of pirating.


  • The best attack on pirates is to make their work more difficult and expensive, while simultaneously making the legal path to products straightforward, easy, and fast. Piracy is a bad business to be in when the user has a choice between easily purchasing the app and visiting an untrustworthy, black-market site.


Android Market is already a responsive, low-friction, safe way for developer to get their products to users. The licensing server makes it safer, and we will continue to improve it. The economics are already working for the developers and against the pirates, and are only going to tilt further in that direction.

Monday, August 23, 2010

Untitled


Media_httpaimageshack_bsbym

This comic was inspired by an experience I had a few night ago. I was pulling into the parking lot of Safeway when I saw one of those gratuitously bright shooting stars. I tried to think of a really good wish, but the shooting star had surprised me and I didn't really have any good wishes on deck, so I wished for the first semi-intelligible thing that came to mind: for the rest of my life to be totally awesome.

As soon as that ham-fisted jumble of words left my mouth, I immediately started thinking of all the ways my wish could backfire and how the phrase "I wish that the rest of my life is totally awesome" could be misinterpreted and taken out of context and turned around to cause me great misery. I silently berated myself for not choosing my words more carefully. I could have used this opportunity to secure a bright and wonderful future for myself, but no, I was stupid and just blurted out the first dumb thing to barge into my head and I'd wasted my wish and possibly also earned myself an untimely death or a crippling brain injury.

Then I realized that I was sitting in a Safeway parking lot, consumed by anxiety over whether some fictional being that grants wishes was going to screw me out of my wish through a technical loophole involving death, brain damage or prolonged unconsciousness.

It made me feel slightly uncomfortable that I'm the person making all the decisions about my life.

Anyway, I'm sometimes reluctant to post short comics, but I should probably get over that because I love to draw them and it gives you guys something to read while I'm working on the longer comics. Oh, and you may have noticed that I changed my banner, sidebar and buttons. At first I just wanted to mess with the post column width so that three-panel comics like this one would fit, but I got carried away.

Simpan Foto Bugil Pembantu, Ketua Fraksi Demokrat Jombang Digugat Cerai Istri

Kepergok menyimpan foto bugil pembantu rumah tangganya, Anggota Dewan Perwakilan Rakyat Daerah Kabupaten Jombang, Jawa Timur, yang juga Ketua Fraksi Partai Demokrat, Ahmad Tohari, 44 tahun, kini menghadapi gugatan cerai istrinya. Foto bugil perempuan bernama Nita Safitri, 28 tahun, itu disimpan di telepon genggam Tohari.

Sang istri, Endang Ekowati, 43 tahun, meradang begitu mengetahui perbuatan suaminya ini. Karena tak tahan sakit hati, ia melayangkan gugatan cerai ke pengadilan agama setempat.

“Sepertinya foto itu dipotret berulang-ulang di hotel. Foto ini akan saya jadikan bukti di pengadilan,” kata Endang.

Sebenarnya, gugatan cerai ini sudah masuk ke pengadilan bulan kemarin. Gugatan Endang itu sudah di respon oleh pihak Pengadilan Agama, dan sudah disidangkan pada 18 Agustus kemarin dengan cara mediasi.

Sidang kedua, kata Endang, akan digelar pada 24 November nanti. Endang mengaku sudah telanjur sakit hati dengan suaminya itu. Dia benar-benar ingin mengakhiri hubungan sah dengan suami yang memberinya dua anak itu. Yang bikin hatinya miris, suami yang dinikahinya dua puluh tahun lalu itu dengan tegas mengakui perbuatanya.

Endang menuturkan, sebenarnya pada tahun 2003 perbuatan bejat suaminya sudah diketahi. Ia ketahuan main mata dengan Nita, warga asal Nganjuk itu. Namun, dia dan suaminya setuju untuk mempertahankan rumah tangga. Bahkan pria kelahiran Ngawi ini berjanji tidak akan mengulangi perbuatannya lagi.

Namun janji tinggal janji. Tohari kembali mengulangi kekhilafanya tujuh tahun lalu itu. Dia terbukti kembali menjalin hubungan cinta dengan Nita. Bahkan ia memasukkan Nita menjadi anggota keluarga, yang tercatat dalam kartu keluarga (KK). Jika malam tiba, Endang juga kerap memergoki suaminya masuk ke kamar pembantu seksinya itu.

"Saya sudah tidak kuat dengan penderitaan ini. Makanya saya minta cerai," urainya dengan berkaca-kaca. Sementara itu, ketika dihubungi ke nomor telepon selulernya, Ahmad Tohari tidak mau mengangkatnya. Pesan pendek pun tak dibalas.

Sedangkan Ketua DPRD Jombang, Bahana Bela Binanda, ketika dihubungi mengaku sudah mendengar kabar tentang itu. Hanya saja, terkait sanksi dia belum bisa memutuskan karena belum ada laporan secara formal."Jika ada laporan kita akan menindak lanjutunya sesuai dengan prosedur," ujarnya singkat.

Friday, August 20, 2010

A Little Too Popular

A couple of weeks ago, we arranged that registered developers could buy an unlocked Nexus One via their publisher page in Android Market. We think it’s a good development platform and a nice phone. Apparently, you agree. Somewhat too many of you, in fact; we blew through the (substantial) initial inventory in almost no time, and they’re back-ordered from HTC, who are doing a pretty good job of managing runaway success amid a worldwide AMOLED shortage. Everyone appreciates that it’s important to the platform to get phones in the hands of developers, so we’re working hard on re-stocking the shelves; stand by.

Monday, August 16, 2010

Two Simple Questions

And the answers to them, posted here and there by senior Android engineers.

How much memory is my app using?

Over at Stack Overflow, our own Dianne Hackborn takes this up in detail. There's no simple answer, but Dianne does offer lots of useful information.

How do I make a ScrollView behave?

This one does have a simple answer, and our Romain Guy offers it in ScrollView’s handy trick. It's easy enough to do once you know how, which is harder to find out than you might think, because there's one useful XML attribute that's there in the examples but missing in the docs. Oops!

Friday, August 13, 2010

Sri Lanka v New Zealand at Dambulla Live Streaming Online Here Today

Test/Odi's
European Union

Test Series and all ODI's .



Media_httpwwwfunrocke_jsxhe

Match scheduled:
Dated: 13-08-2010
Stated : 09:00 until 17:00 (GMT/UK)

Sri Lanka v New Zealand at Dambulla

New Zealand (probable): 1 Martin Guptill, 2 Peter Ingram/BJ Watling, 3 Ross Taylor (capt), 4 Kane Williamson, 5 Scott Styris, 6 Grant Elliott, 7 Gareth Hopkins (wk), 8 Jacob Oram/Nathan McCullum, 9 Daryl Tuffey, 10 Kyle Mills, 11 Andy McKay



Media_http1bpblogspot_ckqbt

Sri Lanka (probable): 1 Upul Tharanga, 2 Tillakaratne Dilshan, 3 Kumar Sangakkara (capt & wk), 4 Mahela Jayawardene, 5 Angelo Mathews, 6 Chamara Kapugedera, 7 Chamara Silva/Thisara Perera, 8 Suraj Randiv, 9 Lasith Malinga, 10 Ajantha Mendis/Rangana Herath, 11 Nuwan Kulasekara

Thursday, August 12, 2010

Expectations vs. Reality

The other night, I randomly decided that it would be a good idea to watch a horror movie.  For some reason, I thought that everything would turn out okay even though I hadn't watched a horror movie in years exactly because nothing is ever okay after I watch a horror movie.  

But on that night, for no particular reason, I felt like I could handle it.  




Media_http4bpblogspot_nvfoo



Media_http2bpblogspot_fsddc


Media_http3bpblogspot_grafe


Media_http2bpblogspot_idhod


Media_http2bpblogspot_vpdby



Media_http2bpblogspot_dgzcb



Media_http1bpblogspot_rfbah



Media_http2bpblogspot_vhpld


Media_http1bpblogspot_vxcfb

Immediately after I turned off the TV, a feeling of apprehension welled up inside of me.  I could feel my psyche organizing what I had just seen into a highlight reel that will be freely embellished by my own imagination and then called upon to torture me for the rest of my life.  It will be dredged up over and over, turning innocuous everyday occurrences into terrifying threats against my survival.  Every noise that is not immediately identifiable will make me think that there's something in my house that is trying to kill me.   


Media_http3bpblogspot_cenul


Media_http1bpblogspot_lxiqr


Media_http4bpblogspot_lefrx


Media_http4bpblogspot_srigu

I know that this is what will happen because it has happened before.  In hindsight, there was absolutely no reason to believe that it would not happen.  But for some unknown reason, I ignored a lifetime's worth of cautionary evidence and pranced merrily onward into the unavoidable consequences.   

Blind optimism and impulsivity often cause me to ignore logic and instead make decisions based on a hopeful projection of what's going to happen next.  It's like I forget everything I've ever learned about the things that generally don't end well when I do them.  And then I'm somehow surprised when things don't happen the way I expected.  

Take dancing, for example.  Despite hours spent watching instructional YouTube videos, I still lack the ability to move my body in a way that does not resemble a structurally unsound robot.  

But then I go somewhere where people are dancing.  I join in and, at first, I just try to keep it simple.


Media_http1bpblogspot_apgcy

But after a little while, I get tired of repeating the same dance moves.  I start wanting to try something new. This is when that little bit of blind optimism creeps in and makes me believe, deep down in the very core of my being, that not only am I capable of shaking it like Beyoncé, but that is exactly what I should be doing. 


Media_http2bpblogspot_ugkek


Media_http1bpblogspot_wpzgq



Media_http1bpblogspot_rbeed



Media_http1bpblogspot_qerbr


Media_http4bpblogspot_yiajp

But something about the move I've just attempted feels "off."  


Media_http2bpblogspot_dadhj

This is usually the point at which I am abruptly snapped out of my fantasy where I am graceful and sensual, into reality where my body is contorted into a vaguely gargoyle-like shape.


Media_http1bpblogspot_ttxby

I am immediately filled with shame and regret. 


Media_http3bpblogspot_nnrhb

I begin to wonder why I would ever assume that I was capable of making my body do what I had pictured it doing.  My coordination is questionable even while performing simple tasks like walking or putting food in my mouth.  In college, I took a dance class and at the end of the year, the only thing my teacher wrote on my evaluation was "Allie tries hard." Nothing I have ever done would indicate that I have the potential to dance like Beyoncé.  But I didn't consider that.  

Another thing that almost always ends in direct contrast to how I had imagined is singing while other people are present. 

One time I went on a road trip with my college roommate, Julie.  I really liked Julie and I desperately wanted her to like me back, but she was quite judgmental and there is a lot about me to judge, so our time together was usually just a series of tense moments in which I tried my hardest to escape judgment long enough to win Julie's approval.

We had just left town, the sun was setting, the windows were down, the radio was playing and I was suddenly overcome with the desire to be a part of a montage-worthy car-singing duet.  In my head, it was the perfect opportunity to bond with Julie.  


Media_http3bpblogspot_zwuha

I decided it would be a good idea to just start singing enthusiastically in order to get the ball rolling on fulfilling this pointless fantasy of mine.  


Media_http2bpblogspot_eubzg


Media_http2bpblogspot_mjrcf


Media_http1bpblogspot_cjhyl


Media_http4bpblogspot_hgbff

It soon became clear that Julie did not wish to participate in this potentially idyllic moment.  My enthusiasm imploded, leaving behind a black hole of awkwardness and insecurity.  


Media_http2bpblogspot_pihkf

But I knew that if I stopped singing and just sat in silence, it would alert Julie to the fact that I was feeling awkward and insecure.  I had to pretend that I was unaware of the awkwardness I'd caused.  I had to keep singing.  


Media_http1bpblogspot_hzotd

I mumbled the rest of the song quietly, turning my head toward the window to give the illusion that the sudden reduction in volume was due to the sound waves being impeded by my head and not because I was embarrassed.  

This discrepancy between the way I imagine things unfolding and how they actually happen is most dramatic when I overestimate my ability to perform a pointless feat of athleticism.  I'll walk past a low-hanging branch and be struck with an irresistible desire to see if I can jump up and touch it with my face.  I'll see something heavy lying on the ground and suddenly need to know if I can pick it up.  There are absolutely no tangible benefits to doing these things, but the consequences are often significant.   


Media_http3bpblogspot_nsvak


Media_http4bpblogspot_fnodc


Media_http2bpblogspot_jjyah


Media_http4bpblogspot_ndbjc


Media_http2bpblogspot_djbdp


Media_http1bpblogspot_eccca


Media_http3bpblogspot_bfzxq


Media_http4bpblogspot_pihdy


Media_http3bpblogspot_fycbp

As I'm lying there, crumpled and broken from my most recent attempt at meaningless success, I feel complete bewilderment at the motivation behind what I just did.  There was no point.  I'm sure that the decision was based on some scrap of reasoning, but in retrospect it seems that chaos and unbridled impulsivity just collided randomly to produce a totally unexplainable action with no benefit and all consequences.  

Wednesday, August 11, 2010

Rayakan Ultah, Bekasi Pesta Gede-gedean

Pemerintah Kabupaten Bekasi, Jawa Barat, berencana akan menghadirkan sejumlah musisi dan tokoh agama ternama Indonesia untuk memeriahkan hari ulang tahun daerah itu dan menyambut datangnya Ramadhan. Rayakan Ultah, Bekasi Pesta Gede-gedean

"Pemda Kabupaten Bekasi bekerj asama dengan salah satu stasiun televisi swasta nasional akan menggelar acara Mega Konser Ramadhan pada Kamis (12/8) besok," ujar Kepala Bidang Humas Diskominfo Kabupaten Bekasi Suherga di Cikarang, Rabu.

Menurutnya, kegiatan itu akan menghadirikan Ustadz Jefry Al-Bukhori, Grup Band Ungu, Sherina dan Vierra yang disiarkan secara langsung dari halaman Plaza Pemkab Bekasi, Kelurahan Sukamahi, Kecamatan Cikarang Pusat.

Menurut Suherga, acara terlebih dahulu dimulai dengan buka puasa dan shalat Tarawih berjamah bersama Bupati Bekasi, Sa’duddin di Masjid Agung Pemda Kabupaten Bekasi. Acara puncak dimulai pukul 22.00 WIB.

"Dengan susunan acara ini kami berharap tidak menganggu kegiatan ibadah umat muslim selama Ramadhan," katanya.

Acara tersebut mendapat kritik dari Ketua Umum Himpunan Mahasiswa Islam (HMI MPO) Cabang Bekasi, Faturahman. Menurutnya, acara konser musik seusai sholat tarawih jelas tidak sesuai dengan suasana bulan Ramadhan.

"Pemkab bekasi harus memiliki konsep acara yang lebih bernuasa spiritual bukan malah konser musik. Bukankah seusai sholat Tarawih umat Islam dianjurkan untuk memperbanyak membaca Al-Quran. Bila habis tarawih terus bergoyang, ini jelas tidak pantas," ujar Fatur. Pesta Blogger 2010

Powering Chrome to Phone with Android Cloud to Device Messaging


Media_http1bpblogspot_eacya

[This post is by Dave Burke, who's an Engineering Manager 80% of the time. — Tim Bray]

Android Cloud to Device Messaging (C2DM) was launched recently as part of Android 2.2. C2DM enables third-party developers to push lightweight data messages to the phone. C2DM created a nice opportunity for us to pull together different Google developer tools to create a simple but useful application to enable users to push links and other information from their desktop / laptop to their phone. The result was Chrome to Phone - a 20-percent time project at Google.

Chrome to Phone comprises a Chrome Extension, an Android Application, and a Google AppEngine server. All of the code is open sourced and serves as a nice example of how to use C2DM.

The message flow in Chrome to Phone is fairly typical of a push service:


  1. The Android Application registers with the C2DM service and gets a device registration ID for the user. It sends this registration ID along with the user's account name to the AppEngine server.


  2. The AppEngine server authenticates the user account and stores the mapping from account name to device registration ID.


  3. The Chrome Extension accesses the URL and page title for the current tab, and POSTs it to the AppEngine server.


  4. The AppEngine server authenticates the user and looks up the corresponding device registration ID for the user account name. It then HTTP POSTs the URL and title to Google's C2DM servers, which subsequently route the message to the device, resulting in an Intent broadcast.


  5. The Android application is woken by its Intent receiver. The Android application then routes the URL to the appropriate application via a new Intent (e.g. browser, dialer, or Google Maps).



Media_http2bpblogspot_iyjwr

An interesting design choice in this application was to send the payload (URL and title) as part of the push message. A hash of the URL is used as a collapse_key to prevent multiple button presses resulting in duplicate intents. In principle the whole URL could have been used, but the hash is shorter and avoids unnecessarily exposing payload data. An alternative approach (and indeed the preferred one for larger payloads) is to use the push message service as a tickle to wake up the application, which would subsequently fetch the payload out-of-band, e.g. over HTTP.

The code for Chrome to Phone is online. Both the AppEngine and Android Application include a reusable package called com.google.android.c2dm that handles the lower-level C2DM interactions (e.g. configuration, task queues for resilience, etc).

Chrome to Phone is useful, but maybe it’s most interesting as an example of how to use Android C2DM.

Saturday, August 7, 2010

Cat Safety Propaganda

I originally wanted to write a short comic to tide you guys over until I finished the really long comic I'm working on (hopefully I'll post it on Monday), but then I got totally carried away and ended up making an overly dramatic animated film about a childhood experience with my mom's friend's cat.

Thursday, August 5, 2010

Nexus One Developer Phone

We've always offered unlocked phones for direct sale to registered Android Developers. As of today, the Developer Phone is the Nexus One, at a price of $529. To see the details or order a phone, you need to sign in to your Android developer account and click on the "Development Phones" link.

The Nexus One combines an up-to-the-minute platform (Android 2.2), modern hardware, and the pure Android software suite. It's a good choice both for people who want to build Android applications using either the SDK or the NDK, and those who want to experiment with modified versions of the Android platform. Note that the Nexus One still ships with Android 2.1 but will download 2.2 soon after you turn it on; make sure you’re near a fast network.

As well as being an outstanding developer platform, it's a really nice everyday phone; we're really happy to have connected the right dots to make this happen.

[Update]: A bunch of people have spoken up wondering about Nexus One accessories. They are available right now in HTC's European online store. When we get more news, we'll pass it along.

[Update, Aug 6th]: The HTC US store now has accessories too.

Wednesday, August 4, 2010

Best Practices for Handling Android User Data


Media_http1bpblogspot_ecskv

[This post is by Nick Kralevich, an engineer on the Android Security Team. — Tim Bray]

As the use of mobile applications grows, people are paying more attention to how these applications use their data. While the Android platform contains extensive permissions designed to protect users, application developers are ultimately responsible for how they handle users’ information. It’s important for developers to understand the code they include, and consider the permissions they request, as mishandling these issues can result in users perceiving a violation of trust.

Maintaining a healthy and trustworthy ecosystem is in every Android developer’s best interest.

Here are a few tips for writing trustworthy Android applications:


  1. Maintain a privacy policy


  2. Minimize permissions


  3. Give your users a choice regarding data collection


  4. Don’t collect unnecessary information


  5. Don’t send data off the device


  6. ... but if you have to, use encryption and data minimization


  7. Don’t use code you don’t understand


  8. Don’t log device or user specific information.


Maintain a privacy policy

Trustworthy applications are up-front about the data they collect and the reasons for collecting it. Users are generally happy to share information via such apps if they believe they will personally benefit. A clear and concise privacy policy, with details about the type of information collected and how it’s used, goes a long way towards generating trust and good will.


Media_http3bpblogspot_faoqq

Minimize permissions

Android is unique among mobile operating systems for its simple, straightforward, operating-system-enforced permission model. All Android applications must declare the permissions they require, and users must approve these permissions before the application is installed. Users tend to distrust applications that require excessive permissions.

For example, a user installing this tic-tac-toe game might reasonably wonder why it needs to take pictures.


Media_http4bpblogspot_dvldm

Give your users a choice regarding data collection

It’s called the paradox of privacy [PDF, 890K]. Users are often happy to share their information, but they want control over that sharing. Trustworthy applications give users control over their information. For example, the Android Browser has privacy settings which enable users to control how their information is shared.


Media_http3bpblogspot_ngwdx

Don’t collect unnecessary information

Trustworthy applications limit the kinds of data they collect. Collecting unnecessary information, especially if you never use it, just invites suspicion. When in doubt, don’t collect it.

Don’t send data off the device

If you have to handle user data, ensure that the data remains on the device whenever possible. Users are comforted knowing that their private information strictly resides in the phone. Sending data outside the phone, even if done for the user’s benefit, tends to draw suspicion.

... but if you have to, use encryption and data minimization

Sometimes, the collection of data is necessary. In that case, applications need to ensure that it is handled safely. A privacy policy will avoid leading to surprised and irritated users; in some cases, it may be advisable to prompt the user before transmitting data off-device.

First, minimize the amount of data you collect. Do you really need the user’s full phone number, or would the area code be sufficient? Can you use a one-way cryptographic hash function on the data before sending it to the server to help protect the user’s confidential information?


A case study: User Favorites


Suppose you want your app to maintain a list of “favorites” for each of your users, without going through a full registration process. In theory, you could do this by sending your server some combination of their phone number, device ID, or SIM ID. But why take the chance of worrying people about privacy issues; why not send a one-way hashed signature of whatever the identifying information is? Or even better, create a random unique id and store it on the phone, and use this unique id as the registration key for your application.


In the end, you’ll will still be able to retrieve their favorites, but you won’t need to send or store anything sensitive.


Second, encryption is critical to the safe handling of user data. Phones often operate on untrusted networks where attackers can sniff confidential traffic. Encrypting data in transit is a critical part of protecting user information.

Finally, when communicating with a server over HTTP, it’s a good idea to avoid encoding user information in a URL that is used with HTTP GET; rather, POST it in a message body. While using POST doesn’t guarantee that your information won’t be sniffed, putting it in the URL increases the likelihood that it will be automatically logged; out of the box, most web server software logs all the URLs that are received.

Don’t use code you don’t understand

In the open-source Android environment, it’s common (and good) practice to rely heavily on other people’s code, in the form of libraries and frameworks. But if that code is handling your users’ information inappropriately, it’s your problem. So make a point of checking code before you rely on it.

Don’t log user or device specific information

Application developers should be careful about on-device logs. Android makes it easy to write to the phone’s log, and anyone who has looked at “logcat” output knows that it is full of important but seemingly random debugging information from many applications. In Android, logs are a shared resource, and are available to an application with the READ_LOGS permission (only with user consent, of course!). Even though the phone log data is temporary and erased on reboot, inappropriate logging of user information could inadvertently leak user data to other applications.