Question and Answer about Android from Stack Exchange network.


Edit: after getting the hint to try creating a new SSID on my WiFi router, I now resolved the problem by just connecting to the same router but with a separate SSID. I still have no idea what the problem was, and the solution now is also completely unrelated to Android. I guess I'll never know what the problem was, but there's no reason anymore for others to try and diagnose the issue.

I know that remotely diagnosing WiFi issues can be very difficult, but I'm running out of ideas (and time) what I could try to identify the cause of the issue I'm having. Therefore, I'm trying to give as much detail as possible and the main advice I'm asking for is what I can do to diagnose the issue.

Since approximately last weekend (I didn't notice right away), I have a very annoying WiFi connection issue on Pixel 3a, Android 11. Android tells me that I have no internet connection through the WiFi network, but in Google Chrome (or Firefox), any pages not related to Google load just fine. google.com for example, and abc.xyz do not load. ourworldindata.org, android.stackexchange.com and superuser.com do also not load (details below, this is because they load stuff from fonts.googleapis.com or similar URLs). duckduckgo.com loads.

This issue is extremely annoying since apps by Google are also not working, so I don't get new e-mails, the calendar does not synchronize and I cannot use Google Play, for example. I do only have very limited mobile data available which I use when I do not have access to WiFi, so I don't want to simply switch to using mobile data (which works fine). I tried restarting the phone in safe mode (it first seemed to work, but the issue now also persists in safe mode) and uninstalling different apps from my phone, but while the issue disappeared sometimes for a few minutes, it came back every time.

I restarted the phone a lot of times, I deleted the WiFi network and reconnected, I tried setting the network rating provider to none and in general turning different WiFi settings off and on, and I slowly run out of ideas. WiFi works fine on my laptop connected to the same network. Resetting the router seemed to help first, but again the issue reappeared after a few minutes (just like after some of the restarts: sometimes it works for a few minutes but mostly it says no connection right after the device powered up). Connecting through a hotspot created using my laptop which uses the same WiFi network works. Unfortunately, this is not a long-term solution. Also, the router is not easily accessible for me, so it's difficult to debug router issues if this is a router issue. But the issue concerns only my phone (not the printer, not the laptop, nor devices of other users of the same network; it's not a public WiFi network if anyone was wondering). Any ideas what else I could try?

I'm not 100% sure that this is an issue with the Android phone alone, but since the WiFi network works with all other devices and since only Google-related URLs seem to be affected, I think it is highly likely that the root issue is indeed caused by Android.

Below you can find an extended log of attempts to get to the root of the problem:

I did now get access to the router (a FritzBox) and captured network traffic. I had a look at it in Wireshark: to me, it looks like my phone goes silent / doesn't get or process the TCP syn ack after the initial TCP syn when running a request for google.com. Not sure why...

Head requests to duckduckgo.com and google.com using curl on my phone during a short period when everything was working (white bars = my phone's IP address):

duckduckgo.com and google.com head requests success

Head requests to duckduckgo.com and google.com using curl on my phone while the issue was present (duckduckgo.com works, google.com doesn't):

duckduckgo.com and google.com head requests timeout

Using PCAPdroid (Google Play Link, I don't want to root my device) seems to suggest that the TCP syn ack never reaches the app / phone...

Here are some screenshots made using chrome://inspect from trying to load different pages:

duckduckgo.com:

duckduckgo.com

(no issue)

supersuer.com:

superuser.com

(issue here is jquery.min.js from ajax.googleapis.com)

Some screenshots of how it looks on the phone (in German):

Loading duckduckgo.com, trying to load google.com (see address bar), and the same issue in safe mode:

working fine not working not working

Ping results:

***>adb shell ping google.com
PING google.com (216.58.207.142) 56(84) bytes of data.
64 bytes from muc11s03-in-f14.1e100.net (216.58.207.142): icmp_seq=1 ttl=118 time=49.8 ms
64 bytes from muc11s03-in-f14.1e100.net (216.58.207.142): icmp_seq=2 ttl=118 time=761 ms
64 bytes from muc11s03-in-f14.1e100.net (216.58.207.142): icmp_seq=3 ttl=118 time=473 ms
64 bytes from muc11s03-in-f14.1e100.net (216.58.207.142): icmp_seq=4 ttl=118 time=627 ms
^C
***>adb shell ping superuser.com
PING superuser.com (151.101.1.69) 56(84) bytes of data.
64 bytes from 151.101.1.69: icmp_seq=1 ttl=59 time=2003 ms
64 bytes from 151.101.1.69: icmp_seq=2 ttl=59 time=1000 ms
64 bytes from 151.101.1.69: icmp_seq=3 ttl=59 time=499 ms
64 bytes from 151.101.1.69: icmp_seq=4 ttl=59 time=981 ms
64 bytes from 151.101.1.69: icmp_seq=5 ttl=59 time=273 ms
64 bytes from 151.101.1.69: icmp_seq=6 ttl=59 time=1544 ms
^C

for comparison, this is how it looks if I ping directly from my laptop:

***>ping -4 google.com

Ping wird ausgeführt für google.com [216.58.207.142] mit 32 Bytes Daten:
Antwort von 216.58.207.142: Bytes=32 Zeit=6ms TTL=118
Antwort von 216.58.207.142: Bytes=32 Zeit=7ms TTL=118
Antwort von 216.58.207.142: Bytes=32 Zeit=7ms TTL=118
Antwort von 216.58.207.142: Bytes=32 Zeit=7ms TTL=118

Ping-Statistik für 216.58.207.142:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 6ms, Maximum = 7ms, Mittelwert = 6ms

Output of curl using Termux:

duckduckgo.com works google.com doesn't work

If I do a ping using Termux terminal, I get the same result as for adb shell ping

PS: since you can see the Avast icon on the last two screenshots: I had it uninstalled for quite some time without any improvement.

Traceroute output:

On Termux, directly connected to the WiFi network:

traceroute -b www.google.com
1: fritz.box ([IPv6 address]) 2.692ms
1: fritz.box ([IPv6 address]) 3.035ms
2: [IPv6 address] ([IPv6 address]) 8.353ms
3: no reply
4: no reply
...

Same on my laptop:

***>tracert www.google.com

Routenverfolgung zu www.google.com [2a00:1450:4016:803::2004]
über maximal 30 Hops:

  1     2 ms     3 ms     1 ms  fritz.box [same IPv6 address as for Termux hop 1]
  2     8 ms    10 ms     6 ms  [same IPv6 address as for Termux hop 2]
  3     *        *        *     Zeitüberschreitung der Anforderung. [<- timeout]
  4     7 ms     6 ms     8 ms  [IPv6 address]
  5     6 ms     7 ms     8 ms  [IPv6 address]
  6     6 ms     6 ms     8 ms  [IPv6 address]
  7     6 ms     7 ms     6 ms  [IPv6 address]
  8   143 ms     *        *     [IPv6 address]
  9     6 ms     6 ms     8 ms  [IPv6 address]
 10     6 ms     6 ms     5 ms  muc12s04-in-x04.1e100.net [2a00:1450:4016:803::2004]

Ablaufverfolgung beendet.

On Termux, connected to the WiFi network via mobile hotspot on my laptop:

traceroute -b www.google.com
1: [...] ([IPv4 address]) 75.818ms
1: [...] ([IPv4 address]) 2.957ms
2: no reply
3: fritz.box ([IPv4 address]) 142.428ms asymm 2
4: [IPv4 address] ([IPv4 address]) 1018.851ms asymm 3
4: [IPv4 address] ([IPv4 address]) 134.135ms asymm 3
5: [ISP server address] ([IPv4 address]) 103.956ms asymm 8
6: [IPv4 address] ([IPv4 address]) 182.587ms asymm 9
7: no reply
8: no reply
...

Same on my laptop:

***>tracert -4 www.google.com

Routenverfolgung zu www.google.com [216.58.207.132]
über maximal 30 Hops:

  1     3 ms     3 ms     1 ms  fritz.box [same IPv4 address as for Termux hop 3]
  2    52 ms     6 ms     6 ms  [same IPv4 address as for Termux hop 4]
  3     7 ms    55 ms     6 ms  [ISP server address] [same IPv4 address as for Termux hop 5]
  4    32 ms     6 ms     6 ms  [same IPv4 address as for Termux hop 6]
  5     9 ms    54 ms     7 ms  [IPv4 address]
  6     8 ms    47 ms     7 ms  [IPv4 address]
  7     7 ms     6 ms    50 ms  muc11s03-in-f4.1e100.net [216.58.207.132]

Ablaufverfolgung beendet.

I am looking to replace the battery in my samsung galaxy s8. Amazon shows many available batteries, ranging in capacity from 3000mAh to 4350mAh, all about $20 or less. The one and only authorized Samsung technician in my neighborhood tells me that none of those batteries is optimized to work with the phone, that any of them would result in very poor battery life, and that I need an OEM battery, capacity 3000mAh, for $99 (plus labor of course). Should I believe him?

i'm really wondering and can't find answer. Google Play from the store every downloaded apps want to access photos. Permission content read the contents of your usb, modify or delete the contents of your usb storage

My question is, can the application copy and send the photos to the application owner if they want? They are virus-free applications available in the official store I am talking about.

My device is an Xiaomi Android tv box running Android 9.

Every app in my phone (Xiaomi Mi A2, Android One) that implements Credit Card auto-fill still shows my old credit card information even though I have already (a) replaced all my payment information in my google account a few weeks ago, (b) used 'Scan a new card' feature every time this auto-fill feature pops up and (c) cleared cache and storage of the app that used this feature.

Do you know where these credit card information are kept and where can I reset them?

enter image description here

Note: The credit card info above were purposefully blurred.

Other Notes

Out of curiosity, when I select any of those old credit cards, I get an error popup

Request failed: An unexpected error has occurred. Please try again later [OR-PMIA-18]

This is expected as I have removed them from my google account.

I'm trying to install a new user root CA certificate in DER form (.crt file) on Android 11, without much success. The previous (expired) CA certificate worked just fine from an earlier install on a previous Android version (I don't quite recall, probably 9 or 10), but the same procedure I used back then (Security > Encryption & Credentials > Install a certificate > CA certificate) now shows the following error message:

Private key required to install a certificate

The answer by Benedito Marques in this question works, but as the other commenters say this completely defeats the purpose of having a private CA with a private key. I do not want this key my device, do I have any solution?

Three days ago I was uploading 6 files to a Google Drive shared folder. It's not the first time I do that, but surely this time was different because not only the files weren't uploaded but also since then I have this notification

enter image description here

To fix it, I tried to

  1. Click cancel.
  2. Restart the phone.
  3. Force stop the app in settings.

yet none of these options worked.

I've recently upgraded from a OnePlus 5T to a Oneplus 9 Pro.

I have noticed that when viewing webpages, the viewport width on the 9 Pro is smaller than on the 5T, even though the 9 Pro has a higher screen resolution.

When I visit http://whatismyscreenresolution.net/ on the 5T, it shows 412x823, and on the 9 PRO it shows 384x858.

Is there anyway to 'fix' this so that the 9 Pro has a higher viewport width?

I would like to add a widget to my home screen. According to the official help page, I should touch and hold an empty space, and then tap "Widgets". However when I touch and hold an empty space on the home screen, there isn't any "Widgets" button, all I see is "Home settings" and "Wallpapers". However, I found a screenshot on internet where that button is clearly visible, the problem isn't that I'm looking in the wrong place.

My phone Screenshot of someone else's phone I found on internet

So it seems like this "Widgets" buttons exists on other phones, but it's disabled on my phone for some reason. I tried googling for why this button could be disabled, but I couldn't find anything related to my problem.

I also tried clicking on "Home settings" to see if there was anything related to widgets in there, but there wasn't. I also tried opening the settings app and searching for "widgets" in the search bar, but it didn't give any results.

In case it matters, I'm using a Motorola Moto E6i.

Why is that "Widgets" button disabled and how do I enable it?

Recently I realized that I have a hard time adding contacts to my samsung phone.

So I want to delete contacts. I remove google account with contacts. Turns out the contacts are still there.

4400 of them

Even though contacts in my google account is only 2200.

So I want to delete all contacts in my android and then resync it with google.

I can't delete contacts at all.

Not even if I delete the whole thing. Not if I do it one by one.

enter image description here

This is the screenshot. The progress bar just stay there.

Do nothing like an idiot.

I am thinking or factory resetting but that's probably overkill.

I've heard many people have same problems.

What's the problem.

I have no idea what can possibly be wrong. Where are all those contacts stored anyway? SIM? Samsung account? Google account, which I have removed?

Where? Why I have a hard time to add or delete contacts?

I am trying to root my new Huawei P30 lite New Edition(MAR-LX1B). I found out that there is no official version of TWRP for Huawei P30 lite New Edition(MAR-LX1B). After a long research I found out that there is a way to root without TWRP. But, you would need the stock ROM of Huawei P30 lite New Edition(MAR-LX1B).

I have long searched how to get the stock ROM, but could not find anything. So I wanted to ask if anyone knows how to get the stock ROM of Huawei P30 lite New Edition (MAR-LX1B)?

Within the last couple of months a change in Brave had affected my typical article reading workflow. This also affects Chrome, so I'm assuming it's a change in the underlying shared codebase.

I use Pocket to manage articles to read, and I would typically open an article in the Pocket app, click the share button, and then share the article URL to the browser. Recently this stopped working. Brave (and Chrome) no longer show in the list of all of the apps. Edge, however, does still show in that list.

I originally thought that Pocket had changed the way it was sharing, but I get the same results sharing a URL directly from one of the browser apps (though that app's Print action does show in the share options). Sharing from Pocket goes directly to the full app list, while sharing from the browser shows just the top options, then your have to scroll right and click More….

My new workflow is to use the copy action (which includes the article title as well as URL), and then paste it into the browser, and then delete the article title so it's just the URL, then navigate.

Is there something I can configure to get this browser sharing feature back? Does anyone know what the underlying change was for?

Question (TL;DR)

How can one (manually) sideload a LineageOS zip file that is pushed on the phone using TWRP?

Context

while installing this lineage-17.1-20210430-nightly-FP2-signed.zip, with the following command:

adb sideload lineage-17.1-20210430-nightly-FP2-signed.zip

I observed that the lineageOS hangs in the loading screen for several hours. So first I verified that the zip file is correctly downloaded, using the sha256, which it is. Next, I noticed that the cause might be that the zip is streamed directly from the host to phone. So I learned an alternative option might be to use:

adb push lineage-17.1-20210430-nightly-FP2-signed.zip /sdcard/

Followed by a command to sideload the zip from the phone.

adb sideload method

For completeness, the direct adb sideload lineage-17.1-20210430-nightly-FP2-signed.zip was performed using the following steps:First, I wiped the system using Wipe>Advanced Wipe> select: Dalvik, System, Cache, Data, and swiping right, then manually activated sideload mode by pressing (and swiping): Advanced>ADB Sideload>Swipe to Start Sideload which outputted:

Updating partition details... ... done RescueParty Full SELinux support is present MTP Enabled ? Starting ADB sideload feature...

An observation is made here that the loading indicator keeps on loading without any progress. This might also be a reason the sideload does not yield a successful boot up of LineageOS.

Next, I tried I first tried the CLI approach:

adb sideload /sdcard/lineage-17.1-20210430-nightly-FP2-signed.zip

Which outputs:

Installing zip file /sideload/package.zip Unmounting System Warning: no file_contexts Target: Fairphone/FP2/FP2:6.0.1/FP2-gms-18.04.01/FP2-gms-18.04.01:user/release-keys Patching system image unconditionally Script succeeded: result was [1.000000] Formatting Cache using make_ext4fs... Wiping Cache & Dalvik... Cleaned: /data/dalvik-cache... -- Dalvik Cache Directories Wipe Complete!

And I pressed Reboot System. This results in the (seemingly) endless booting of the LineageOS loading screen.

adb push method

Before I tried other builds for the FP2, I was mainly curious to learn how the sideloading would work using adb push. Hence, I tried:

adb push lineage-17.1-20210430-nightly-FP2-signed.zip /sdcard/

And started looking for ways to sideload that zip from the phone. The first thing I tried was, after starting the sideload mode manually and verifying that the TWRP was in sideload mode with command adb devices:

adb sideload /sdcard/lineage-17.1-20210430-nightly-FP2-signed.zip

Which returns:

adb: failed to stat file /sdcard/lineage-17.1-20210430-nightly-FP2-signed.zip: No such file or directory

Next, I tried exploring the TWRP options manually. One of the options could possibly be: Install>browse to /sdcard> and tap the: lineage-17.1-20210430-nightly-FP2-signed.zip. However that yields a warning:

This operation may install incompatible software and render your device unusable

And I think installing might be something else than sideloading, hence I think this might brick the device/not be what I am looking for.

Note

This is not about the xy-problem of making LineageOS boot on the Fairphone, it is about how to load LineageOS using TWRP from the phone instead of from the host.

I tried to reflash my Htc Desire 628 using fastboot, but got following log:

PS D:\platform-tools> fastboot oem rebootRUU
OKAY [  0.042s]
Finished. Total time: 0.043s
PS D:\platform-tools> fastboot flash zip firm.zip
Invalid sparse file format at header magic
error: write_sparse_skip_chunk: don't care size 915918919 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 115920967 is not a multiple of the block size 4096
Sending sparse 'zip' 1/3 (781249 KB)               error: write_sparse_skip_chunk: don't care size 915918919 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 915918919 is not a multiple of the block size 4096
OKAY [ 36.254s]
Writing 'zip'                                      (bootloader) HOSD CL#788931
(bootloader) ERR lzipv2_init : Cannot open file /dev/fastboot_download_U
(bootloader) aJ4Bc
(bootloader) ERR [SD_UPDATE_ERR] update_fb_ZIP_buf: can not find ZIP hea
(bootloader) der
(bootloader) ERR [SD_UPDATE_ERR] sddownload failed: 22
(bootloader) ERR Update zip file failed.
(bootloader) ERR ZIP ERROR, exit read zip loop
(bootloader) ERR ZIP signature checking failed...
(bootloader) Update zip file OK
(bootloader) ERR ZIP ERROR CODE, 22
(bootloader) end@Done
FAILED (remote: '22: fail to flash via downloadzip')
fastboot: error: Command failed
PS D:\platform-tools> fastboot reboot
Rebooting                                          OKAY [  0.001s]
Finished. Total time: 0.008s

I took 2PVGIMG_V36BML_UHL_L51_DESIRE_SENSE70_HTC_Europe_1.16.401.1_Radio_0.1524V28P45.0504.0422_1_release_483251_signed_2_4_masud.zip

firmware from there: http://forum.gsmdevelopers.com/htc-firmware-unified/11239-htc-desire-628-2pvgimg-v36bml-official-stock-roms-18-03-2017-updated.html

in download mode:

*** UNLOCKED ***
htc_v36bml_uhl PVT S-ON
LK-1.01.0000
RADIO-UNKNOWN
OpenDSP-UNKNOWN
OS-1.16.401.1
Aug  2 2016, 19:11:15(788931)

bootloader and OEM unlocked, usb debugging enabled, is there something else missing or it is a matter of firmware?

Update:

adb log:

PS D:\platform-tools> adb sideload firm.zip
Total xfer: 0.00x
PS D:\platform-tools>

in twrp:

Updating partition details...
...done
Full SELinux support is present.
MTP Enabled
Starting ADB sideload feature...
Installing zip file '/sideload/package.zip'
Invalid zip file format!

Update 2:

Updating partition details...
...done
Full SELinux support is present.
MTP Enabled
Installing zip file '/sdcard/firm.zip'
Checking for Digest file...
Skipping Digest check: no Digest file found
Zip file is corrupt!
Error installing zip file '/sdcard/firm.zip'
Updating partition details...
...done

Update 3:

handle_cota_install: install cwpkg to /ota/cwpg.zip
handle_cota_install: install cwprop to cota/cw.prop
Write host_mode error
handle_cota_install: Can't mount /sdcar, 1 times
handle_cota_install: Can't mount /sdcar, 2 times

I unlocked my Nexus 7 2013 WiFi (flo)'s bootloader and flashed the latest TWRP (3.5.1_9-0 at the time of writing), but now it freezes on the boot/splash screen and reboots after waiting. I can use adb shell to access it, in there I see errors like this repeated over and over:

<3>[  305.099060] EXT4-fs (mmcblk0p30): VFS: Can't find ext4 filesystem
<5>[  305.158416] type=1400 audit(1620032012.811:24): avc:  denied  { read } for  pid=172 co
<5>[  305.158416] type=1400 audit(1620032012.811:24): avc:  denied  { read } for  pid=172 comm="recovery" scontext=u:r:recovery:s0 tcontext=u:r:recovery:s0 tclass=netlink_kobject_uevent_socket permissive=1

What might I do to get TWRP working?

I tried to update my OnePlus One to LineageOS 18.1, following my usual procedure:

  • do a full backup (boot, system, data excl. storage, cache) with TWRP
  • then flash the new image, along with the zip files Magisk and microG

As I then noticed that Android 11 breaks some of the apps I use, I decided to roll back the update by simply booting into recovery, restoring the backup and rebooting. However, this failed with the system being stuck in the boot animation for significantly above 10 minutes.

I then tried the following:

  • boot into TWRP
  • flash LineageOS 17.1 from the previous image I had installed (plus Magisk and microG)
  • restore my backup
  • wipe caches

Still no joy, I am still stuck in the boot animation.

Suspecting the upgrade had converted some app data in /sdcard/Android/data, I moved all app dirs starting with com.android or org.lineageos off the device. (The rest should be user app data. I do not have Google Play services installed.)

That still was not successful, I am still stuck in the startup sequence.

I have never (knowingly) encrypted any data on the device.

What gives? How can I find out where the device gets stuck, so I can hunt the error down? Wiping all user data is not an option.

I have 4 cores cpu on my device, but each time I use this command line to genetrate a systrace file :

python C:/Users/BJI/AppData/Local/Android/Sdk/platform-tools/systrace/systrace.py freq idle -o C:/Users/BJI/Desktop/systrace

I get a different number of cores (2 or sometimes 1 core cpu), is it only the number of active cores ?

Assumption

My question assumes the following situation, that is what I could understand about Google's push notifications system. If I misunderstood anything, please correct me here.

When a web service wants to send a notification to a user who installed its app (client), it sends the notification content to Google's push notification server. The server then contacts the user's device instructing it to show the notification.

This system prevents user's device from continously checking for notification, that would cause battery drainage and other annoying side-effects. However, some privacy concerned people point out that it allows Google to access all the notification contents, including for example private messages.

Question

If I have an app (client) that manages* notifications on my device for a web service and doesn't have an option to disable them, the only way I can prevent them to be shown is through Android settings. To my understanding, if I do so the web service (that doesn't know my Android settings) will still send notification contents to Google's server, thus allowing Google to know notification content, but the server won't send it to my device. So, disabling notifications through Android settings wouldn't have any effect on privacy. Is that right?

*I use the word "manage" because usually the notifications are shown if and only if the app is installed and it often has settings for them (sound selection, vibrate and so on); however, I don't know how much notifications depend on the app and how much on the system. Anyway, it looks to me that it is not very important for the question (but I might be wrong of course).

According to this site, since Android 8, build numbers have a certain format. However, I have an Alcatel 5030D_EAA with Android 10 with a build number 01011

What should I think of that?

The reason I ask this, is because I have some Bluetooth code in my app that does not work on this phone, but does work on many others (including with newer Android versions).

I have OnePlus 5t, Twrp 3.5.2_9-0-cheeseburger_dumpling, and when I'm trying to flash the magisk zip it's tell me: Invalid zip file format.

I searched google and found that I need the least TWRP version, but I have the least version... What can I do?

Edit:

In V22.1 (least) the only zip file is called "Source code (zip)", and in the TWRP its says Invalid zip file format. Same in V22.0. The next version available is 21.4, in V21.4 the link name is not "Source code (zip)", the link name is: "Magisk-v21.4.zip", and in the TWRP it's working well and flash into the system! Why it is like that? And what I don't understand?

Link to all versions: https://github.com/topjohnwu/Magisk/releases

Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes