text:
Why a 12-Year-Old Launched His Own Social Network Grom Social is a network for kids, Facebook's more lucrative Hacker Cup, a Pinterest for cats and more.
Opinions expressed by Entrepreneur contributors are their own.
This week's need-to-know social media news.
Entrepreneurs of any age could learn a thing or two from Zach Marks of Melbourne Beach, Fla., about turning obstacles into opportunities. The 12-year-old has launched Grom Social, a free social network for teenagers and preteens under age 17. His motivation? Getting kicked off Facebook -- twice -- for violating the age restriction.
After borrowing $2,500 from his older brother, Marks set to work on his own social network, which now boasts Instagram and Twitter integration, and free educational content for kids -- even tutors to help with homework. As of last month, the new site had nearly 7,000 members.
Should the network take off, it could pull younger users away from Facebook. Meanwhile, Grom Social or another kid-friendly social network may itself become a gold mine for toy companies and other youth-focused advertisers and marketers. -- AppNewser
Facebook mobile ads are starting to take off.
Mobile users are increasingly driving traffic to Facebook, and advertisers have responded by purchasing large numbers of mobile ads. More than $1 in every $5 spent on Facebook advertising now goes to mobile, even though mobile ads command a premium cost-per-click rate of $1.38 -- compared to $0.81 for desktop ads. Also of note: The majority of tablet users access Facebook using an Apple product, but when it comes to phones, the Android operating system drives more traffic. -- AllFacebook
Wikipedia readies launch of social travel site 'Wikivoyages.'
In what promises to be a further disruption of the travel industry, Wikipedia is expected to launch a free global travel wiki this month called Wikivoyages, which has been in beta since September. In recent years, companies such as HomeAway, Airbnb and Luxury Retreats -- not to mention Couchsurfing -- have redefined what it means to bed down abroad. But no matter how many startups exist in a space, there's always room for another venture, even a nonprofit like the Wikimedia Foundation, to rewrite the rules. -- Skift
Facebook offers $10,000 in 'Hacker Cup.'
For its third annual Hacker Cup, and its first as a public corporation, Facebook has doubled the prize money for the best hack to $10,000. A hacker mentality has always been part of Facebook's ethos, and it goes to show that even a big public company can still open its doors to new ideas. The Hacker Cup begins Jan. 25 and ends March 23. -- SocialTimes
Not enough cat photos on Pinterest? Join Catmoji.
A new Malaysia-based social pinboard has launched in beta. The hook? It's strictly for cat lovers, by cat lovers, with every picture on the site featuring a furry feline. "Catmoji is on a mission to make the Internet a better and happier place with cats," the site promises. "Join and help us distrupt [sic] the Internet with cats and happiness." -- SocialTimes


text:
School Photography: School Prospectus One of a series of shots taken at a local school. Many shots have been used in the series to show almost start to finish of one particular piece of work.The brief was to capture the children working and enjoying their schooling. Also to show the school's facilities.
Call now! 01527 874819

subset: commoncrawl


text:
Match Firearms and Ammunition...Correctly!
With so many kinds of firearms and types of ammunition, it's not always easy to match the proper ammunition to your firearm correctly—but getting it right is critical. If you match the wrong ammunition to your gun, you can cause an explosion, injuring or possibly killing yourself and any bystanders.
To match the proper ammunition to your rifle, shotgun, or handgun correctly:
- Read the specific caliber or gauge designations on the side of the barrel. Match that barrel stamp designation exactly. For example, if it says ".270 Winchester," you cannot use ".270 Weatherby." Shotgun barrels will give the gauge and the length of the chamber (for example, "12-gauge for 2¾-inch shells" or "20-gauge Magnum for 3-inch shells").
- Carefully read the information on the lid of the ammunition box and on the head stamp on the ammunition. With shotgun ammunition, always check both the gauge and the shell length, and whether it's a magnum load, to ensure it matches the data on the barrel.
- Finally, match the proper caliber of cartridge, or gauge and length of shotshell, on the ammunition box and the ammunition head stamp to the barrel stamp before you shoot.


text:
Ho-hum, another day, another Jew is accused of being blood-thirsty. No surprise either that another Jew is adding to the chorus. There is a gem of insight to be found here though so bear with me and slog through this hideous little example of faux journalism from Russia Today. Fellow Blogger Carl in Jerusalem, by the way, is the "blood-thirsty" exemplar here and he has blogged on the mess here.
I watch this video and the outrage I feel at the lies, anti-Semitic innuendo and the outright blood-libels is dwarfed with a kind of wonder at the utter absurdity of the Israeli woman, Inna Michaeli. Is there no limit to the venal careerism of people like this toad from "Women for Peace"? I wrote about Amira Hass as the Queen of the Toads three years ago and the same things I said about her back then apply double here to Inna Michaeli. She perverts and subverts liberal democratic ideals by implying that there is a moral equivalence between Israel's struggle to survive and protect her people and the annihilationist Arab Jihad against her, she obscures truth by inferring that Israel has not tried to achieve peace in ways other than warfare, and she betrays her own country a country which, judging by her accent, not so long ago redeemed her from the oppression of living in some part of the former Soviet Union. Now she is a professional in an organization that raises money and thrives on that betrayal, obfuscation and perversion. As with Hass, she has made her livelihood at betrayal and perversion and she takes her public acclaim and professional standing as her justification.
But who is blood-thirsty? Is it Carl who's only sin is in identifying evil and warning of its consequences or is it this fraud Inna Michaeli who pretends to want peace but who works to prevent Israel from asserting her power advantage (while she still has it) to secure her own people and survival. Who will be more responsible as the wars drag on and the land runs with blood for yet another generation?
The answer is made plain when she says "war is inevitable because ...wars and military action by our government simply goes unpunished..."?
If all military action is punished, who punishes the punishers? This is nothing less than a subconscious manifestation of the essential leftist yearning for world totalitarianism. This is the call for unending war.
Then too, Israpundit posted a brilliant speech by Spanish politician and Journalist Pilar Rahola at the Conference in the Global Forum for Combating Anti-Semitism. This quote was debated in the comment stream, "The World is a dangerous place. Not because of the people who are evil; but because of the people who don't do anything about it". I was moved to write a comment which I have expanded upon below.
The only thing to disagree with here is that she comes so close but then misses the heart of the real problem. That is that ALL people are evil. The founders of the U.S. knew, as they learned it from Genesis, that man's heart inclines toward evil from his birth. The Patriarchs were evil Thomas Jefferson owned slaves NO ONE is perfect. The genius of America is that the founders were honest about evil. They constructed the first human constitution that accepted that honest appraisal and was specifically designed to make sure that no one person or party could dominate and hold the rest hostage. They constructed check and balances so that the next ruler would not have to kill his predecessor. By making it so that we were responsible for keeping each other "honest", They gave us a reason to work with and trust each other. On the whole, it has worked. Israel's government has very similar aims.
What is so insane about the left is the utter dishonesty about evil- the pretense that the government (any government) or the financial system or bourgeois morality or organized religion or The Jews or the Republicans are the cause of evil. In "resisting" these and other "institutions of evil" they are blindly and ironically undermining the very Institutions that have evolved to control and channel ever-present human evil. The left has declared a war of annihilation against evil, thinking that that is good. It is not an accident that the greatest slaughters of human history have been perpetrated by socialists and communists. They are ready to pursue and exterminate evil right down to the last human heart in which it resides.
And, like Inna Michaeli, they all pretend to virtue and compassion...


text:
- | Housing Housing
- | Research Papers Research Papers
- |
State Fiscal Rankings | 2018 Edition
Ranking the States by Fiscal Condition
This study ranks the 50 states according to their financial condition. How does your state rank?
For the fifth and final year, a study from the Mercatus Center at George Mason University ranks the 50 states according to their financial condition. Each edition has provided a snapshot of each state's fiscal health by providing information from audited state financial reports in an easily accessible format. In "Ranking the States by Fiscal Condition, 2018 Edition," Eileen Norcross and Olivia Gonzalez calculate this year's rankings from each state's fiscal year 2016 reports and then apply trend analysis to reports for each year from 2006 until 2016.
The study measures how well states can meet short-term and long-term bills by examining their financial statements. Most states are in a stable condition, with the exception of the size of unfunded pension liabilities (a large portion of most state government obligations). Some states also have consistently low levels of cash, which indicate the potential for budget shortfalls during a recession.
A Multidimensional Approach to Fiscal Solvency
The study analyzes state finances according to five dimensions. These dimensions combine to produce an overall ranking of state fiscal solvency.
- Cash solvency. Does a state have enough cash on hand to cover its short-term bills?
- Budget solvency. Can a state cover its fiscal year spending with revenues, or does it have a budget short-
fall? - Long-run solvency. Can a state meet its long-term spending commitments? Will there be enough money to cushion it from economic shocks or other long-term fiscal risks?
- Service-level solvency. How large a percentage of personal income are taxes, revenue, and spending? How much "fiscal slack" does a state have to increase spending if citizens demand more services?
- Trust fund solvency. How much debt does a state have? How large are its unfunded pension and healthcare liabilities?
Top Five States
The top five most fiscally solvent states are Nebraska (#1), South Dakota (#2), Tennessee (#3), Florida (#4), and Oklahoma (#5).
Bottom Five States
The bottom five states in terms of fiscal solvency are Kentucky (#46), Massachusetts (#47), New Jersey (#48), Connecticut (#49), and Illinois (#50).
National Trends in Fiscal Health
- Comparing revenues to expenses, state budgets have not fallen to the lows they reached during the recession, but they also have not quite improved to prerecession levels.
- Long-term liabilities have, on average, increased over time.
- Long-term liabilities increased most significantly in fiscal year 2015, largely as a result of new Governmental Accounting Standards Board (GASB) rules that required states to report unfunded pension obligations on the balance sheet.
- Unfunded pension liabilities remain an ongoing problem for the states. The GASB reporting changes only more transparently reveal the magnitude of the problem.
Key State Findings
- Consistent performers. Some states have consistently performed poorly, such as Connecticut, Illinois, and New Jersey. They have experienced ongoing structural deficits, a growing reliance on debt to fund spending, underfunded pensions and other postemployment benefit liabilities, or some combination of these problems. States with low levels of debt and unfunded pension liabilities and strong short-term indicators include Nebraska, Tennessee, and Utah.
- Fiscal implications of heavy reliance on oil tax revenue. Alaska, North Dakota, and Wyoming rely heavily on severance taxes on oil production as sources of revenue to finance government spending. These states experience volatility in their short-term solvency and dramatic swings in cash and revenue levels. In some cases this leads them to increase spending beyond a level that could be supported if the revenues were raised based on the income of residents.
- Fiscal implications of major tax reform. Indiana, Kansas, Michigan, North Carolina, Rhode Island, and Utah have each passed a variety of tax reforms during the time period this study analyzes. In the cases of Indiana and North Carolina, these reforms were accompanied by base-broadening or spending reforms that resulted in neutral or positive impacts on the states' financial positions. By contrast, Kansas's tax reform of 2012 cut rates but narrowed the tax base by including an income tax exemption for sole proprietorships. It also did not undertake spending reforms. This led to a steady decline in Kansas's budget solvency during the postreform years.
States face many fiscal problems, but these problems are not insurmountable. Studying how each state is performing with respect to a variety of fiscal indicators can help state policymakers address persistent issues and anticipate potential problems.


text:
Cooler Bags
Personalised card
Add a personal touch to your gift by adding a personal message in the checkout. This is free of charge.
Made in Belgium
All our pralines and truffles have always been crafted with care in Belgium and it's our firm commitment to keep it that way.
Honest Chocolate
All our cacao is sustainably sourced. We also invested in a cacao farm in Ecuador in order to work directly with cacao farmers to ensure traceability and quality.


text:
The combination can be perplexing. Ethics—in the lexicon of rank-and-file journalists—typically means that reporters shouldn't take gifts, gratuities or favors from sources. Call it what you will, but many within the journalism industry consider it "bribery."
Some years ago, when I worked for The Tampa Tribune, I was at a Chamber of Commerce breakfast. Ahead of me in line was a reporter from the rival St. Petersburg Times who loudly announced that she wouldn't accept a free cup of coffee because it was against her employer's ethics rules. I quipped—loudly as I recall—to those around us: "Aha! Now we know that the journalistic soul of a reporter can't be purchased for the price of a cup of java."
Were ethics served by the reporter refusing a free cup of coffee? I doubt it. But while journalists have long stroked their chins and engaged in lengthy discourse on whether accepting a free coffee—or a meal or tickets to a ballgame—is unethical, top executives of media enterprises—corporate owners, publishers and news executives routinely engaged in much more obvious ethical violations.
Media bosses manipulate news—fabricate, distort or bury information—to benefit themselves or their friends. It happens. It has always happened. Recall William Randolph Hearst and Joseph Pulitzer starting a war to sell papers? For a more recent example, consider Rupert Murdoch's Fox News Network and the goosing of television ratings to boost advertising revenues by splattering the international airwaves with bogus claims that Saddam Hussein was responsible for 9/11. Fox, and The New York Times' Judith Miller, reported that he also possessed weapons of mass destruction, which he did not.
Early on, in ploughing the rocky fields of journalism, I realized the most interesting events that were never covered involved news about news organizations themselves. My epiphany came with my inaugural executive job as editor of a group of suburban newspapers in South Florida, owned by Knight-Ridder, which also published the massive Miami Herald. My multiple layers of bosses included both journalists and business execs, who uniformly assured me that I would have "absolute freedom" in editorial matters. I was skeptical, but, heck I had already been welcomed into the Herald's executive dining room—and been given Knight-Ridder stock options.
Yet, I had barely settled in my office before I got a call from a business executive, who I recall saying: "You know those state legislative elections coming up? Go ahead and endorse whichever candidates you want—except you can't endorse Joe Gersten." I asked why Gersten—a name I'd never heard before—was considered anathema.
It was not something I should trouble myself about, he told me.
Media bosses manipulate news—fabricate, distort or bury information—to benefit themselves or their friends. It happens. It has always happened. Recall William Randolph Hearst and Joseph Pulitzer starting a war to sell papers?
I learned later that Gersten's dad was a labor lawyer who had defended newspaper unions during bitter, protracted disputes with the Miami Herald in the 1950s. I endorsed the brilliant but acerbic Gersten anyway. To me, he was by far the best choice among the legislative candidates. I thought the ax would fall on my young neck, but I was apparently saved by the true journalists among my bosses.
I was later asked by a journalism watchdog organization to track 108 legislative stories over a yearlong span involving the same Joe Gersten. Whenever an article about Gersten—say, written by The Associated Press or another Florida news outlet—was "positive," that same story would be recast by the Herald with the most negative spin possible. Why? Knight-Ridder was infamous for destroying newspaper unions—even dispatching teams of strikebreakers to assist other publishers with their labor disputes. And, with almost biblical vengeance, the Herald would punish people such as the Gersten clan. Its retribution often extended over generations.
Gersten would later get into a political smackdown with the most sacred of sacred cows in Miami: Janet Reno, the local state attorney who was then on her way to becoming U.S. attorney general under Bill Clinton. Her father was a former Herald reporter, her mother a writer at the afternoon Miami News. She had demigod status when she visited 1 Herald Plaza, the building that housed both newspapers.
Freedom was mostly alone in connecting the dots on major aspects of the story, primarily concerning the sources of an avalanche of prescription painkillers.
In 2000, an award-winning Australian journalist, John MacGregor, and I teamed up to investigate Reno and her attempts to demolish Gersten. In May, 2001, after a year of investigation, we reported that Reno betrayed her offices and used her power corruptly to crush an opponent. Backing up our assertions of a conspiracy was a congressional report issued April 10, 2001. You're not likely to read about this damning appraisal of Reno. Or, if you do, you'll find that the Florida press immediately circled the wagons around Reno. The story was frightening. Scarier yet was the collusion in this debacle by the Miami Herald.
Reno first targeted Gersten when he was running for Florida attorney general—and the Herald, hating that idea, suggested she seek the office herself. Reno didn't run. But Gersten lost to another Herald vassal. Gersten then became a Dade County commissioner—and by 1992 was well on his way to winning the job of county mayor.
Until, that is, Reno and the incumbent mayor of Dade set about to frame Gersten for smoking cocaine at a crackhouse, cavorting with hookers and, even, murdering a transvestite prostitute. There was no tangible evidence—no fingerprints at the crackhouse, and Gersten's drug tests were negative. But Reno created a perjury trap for him—Gersten could admit the crimes or one of the lowlifes would testify that Gersten lied, and he'd be indicted for perjury. Either way, his career would crash. On vacation in Australia, Gersten decided to stay Down Under. "I looked at the forces against me and they were just too powerful," he told me then.
A U.S. congressional committee investigating Reno issued a 26-page report on the Gersten affair, concluding that Reno and her allies "participated in a conspiracy to make allegations that they knew to be false. … Some of those who had made allegations against Gersten had themselves been subsequently indicted."
Without ever detailing most of the evidence in the congressional report, the Herald did its damnedest to dismiss the findings. Most of the newspaper's "news" accounts lauded Gersten's tormentors. A Herald "analysis" refers to Reno as "Janet." Gersten remained just Gersten, except where the writer derided him as "poor Joe."
Finally, a Herald editorial snickered derisively that Gersten's defense was "silly."
Congressional investigators didn't believe Gersten's case was silly. And Australian authorities discovered what they called the "X-files"—documents that made clear that Reno, while U.S. attorney general, illegally used the FBI to spread falsehoods about Gersten in his newly adopted home. The Wall Street Journal broke from the media pack and termed Reno's jihad "Gerstengate."
But Reno's cheerleaders at the Herald never investigated what is now well documented. Their refusal is testimony to both the power and depravity of the press.
Seventeen years later—and there's ample irony here—Knight-Ridder no longer exists, the Herald is on life support, Reno is dead, her legacy besmirched by her underlings' lethal siege of the Branch Davidians in Waco, the predawn grab of Cuban child Elian Gonzalez and more. Gersten, meanwhile, became a formidable barrister in both Australia and Ireland.
The moral of Gerstengate?
"News" is not a passive commodity. It can be weaponized. "Fake" news can be created. People's lives can be destroyed. And skulking behind much of that are corporate media owners whose missions are written in dollar signs.
Here's another example: Two years ago, Freedom carried a cover story on the "opioid epidemic." We return to that issue in this edition, and originally began reporting on it as early as the 1980s.
Freedom was mostly alone in connecting the dots on major aspects of the story, primarily concerning the sources of an avalanche of prescription painkillers. In roughly a thousand articles on a news database about the epidemic, there were only 28 hits that include "opioid," "epidemic" and—this is key—the "Sackler" family—owners of Purdue Pharma, which did more to turn Americans into addicts than any Mexican or Colombian cartel. Purdue used networks of doctors to push the highly toxic OxyContin—like drug kingpins using street-corner kids to distribute narcotics. Yet, the media put on blinders concerning the Sacklers.
As finances of newspapers and broadcasters collapsed in recent years, many of the remaining ad dollars have come from aggressive promotion of drugs by pharmaceutical companies. Newspapers and TV stations understand this reality: They're focused not on the public good, but on not biting the hand that feeds them.
Equally devastating are other painkilling pills being pushed by people in white lab coats. The devil's brew of opioid painkillers should have been a focus long ago for daily newspapers and news broadcasts. But only recently have they begun to tell those stories abundantly, and only after the plague became so obvious it couldn't be ignored.
There's one thing Big Pharma has that cartel drug lords don't: massive advertising budgets. The drug companies spent about $6.4 billion in 2016 on pitches to consumers. And they pushed five or six times that amount into the pockets of doctors for "marketing," which in any ethical universe would be spelled "bribery."
No memo had gone out to newsrooms across America saying, "Go soft on reporting the opioid epidemic, and whatever you do don't depict Big Pharma as craven pushers."
But that message guided media moguls nonetheless. As finances of newspapers and broadcasters collapsed in recent years, many of the remaining ad dollars have come from aggressive promotion of drugs by pharmaceutical companies. Newspapers and TV stations understand this reality: They're focused not on the public good, but on not biting the hand that feeds them. Where are the ethics in that?
John F. Sugg is Freedom's Florida-based senior editor.


text:
When the next-generation Infiniti QX50 crossover arrives next year as a 2019 model, it will be powered by a 2.0-litre turbocharged four-cylinder unit introducing a technology never seen before in a regular production vehicle: a variable compression engine.
Under development at Nissan for 20 years, the – Variable Compression -Turbo engine — or VC-T — has a device that changes the distance the pistons travel in their cylinders by as much as 6 mm, or about a quarter of an inch.
It's an idea that automakers, such as Saab, and engine developers, including AVL, have tried to perfect over the years. The reason: Varying the compression ratio has the potential to offer dramatic improvements in power and efficiency.
Read the full article from Automotive News here.


text:
Cookies Policy
Cookie is a file that is downloaded to your computer to access certain web pages. Cookies allow a website, among other things, store and retrieve information about browsing habits of a user or their equipment and, depending on the information they contain and the way you use your computer, can be used to recognize the user .. The user's browser stores cookies on your hard disk only during the current session occupying an area of minimum memory and not harming the computer. The cookies do not contain any specific personal information, and most of them are deleted from the hard drive at the end of the browser session (so-called session cookies).
Most browsers accept cookies as standard and, independently thereof, to allow or prevent security settings or stored temporary cookies.
Without their consent-through activation of cookies in your browser-XXXXX will not link in cookies stored data with personal data provided at the time of registration or purchase ..
What types of cookies used this site?
- Technical Cookies: Those that allow the user to navigate through a website, platform or application and use of the different options or services it exist as, for example, control traffic and data communication, identify the session, access to restricted parts, remember the elements of an order, making the buying process an order, make an application for registration or participation in an event, use security features, while browsing the content store broadcasting or sound or video content sharing through social networks.
- Cookies Customization: those that allow users to access the service with some features of a general nature based on a predefined set of criteria the user terminal such as would be the language, the type of browser through which access to service, locale from which you access the service, etc.
- Analysis Cookies: These are well treated by us or by third parties, allow us to quantify the number of users and thus the measurement and statistical analysis of the use made by users of the service offered. To do your browsing discussed in our website in order to improve the supply of products or services we offer.
- Advertising Cookies: These are well treated by us or by third parties, allow us to manage as effectively as possible the offer of advertising spaces in the website, adapting the content of the ad content or service requested use made of our website. So we can analyze your browsing habits on the Internet and we can show related advertising to your profile navigation.
- Cookies behavioral advertising: those that enable management, as effectively as possible, of the advertising space that, if the editor is included on a website, application or platform from providing the requested service. These cookies store information on user behavior obtained through the continuous observation of your browsing habits, allowing to develop a specific profile to display ads based on the same.
Third Party Cookies: The Web of XXXXX can use third-party services on behalf of XXXXX, compile information for statistical purposes, to use the Site by the user and for providing other services relating to website activity and other services Internet.
In particular, this website uses Google Analytics, a web analytics service provided by Google, Inc., registered in the United States with headquarters at 1600 Amphitheatre Parkway, Mountain View, California 94043. To provide these services, they use cookies that collect information, including the IP address of the user, which will be transmitted, processed and stored by Google on the terms set out in the Google.com Web. Including the possible transmission of such information to third parties for reasons of legal requirement or where such third parties process the information on behalf of Google.
The User expressly agree, by using this Site, the treatment of information obtained in the manner and for the above purposes. And also it recognizes its potential to refuse the processing of such data or information by rejecting the use of cookies by selecting the appropriate settings for this purpose in your browser. While this option of blocking cookies on your browser may not allow full use of all the functionality of the Website.
Can you allow, block or delete cookies installed on your computer by configuring your browser options installed on your computer
Así mismo, puede acudir a la plataforma europea de resolución de litigios en línea: https://ec.europa.eu/consumers/odr/
Click here to change your cookie settings.


text:
is a tool that runs on Android devices and provides information about
system services. Call dumpsys
from the command line using the
Android Debug Bridge (ADB)
to get diagnostic output for all system services running on a connected device.
This output is typically more verbose than you want, so use the command-line
options on this page to get output for only the system services
you want. This page also describes how to use dumpsys
to accomplish
common tasks, such as inspecting input, RAM, battery, or network diagnostics.
The general syntax for using dumpsys
is as follows:
adb shell dumpsys [-t timeout] [--help | -l | --skip services | service [arguments] | -c | -h]
To get a diagnostic output for
all system services for your connected device, run adb shell dumpsys
However, this outputs far more information than you would typically want. For
more manageable output, specify the service you want to examine by including
it in the command. For example, the command below provides system data for
input components, such as touch screens or built-in keyboards:
adb shell dumpsys input
For a complete list of system services that you can use with dumpsys
, use the
following command:
adb shell dumpsys -l
Command-line options
The following table lists the available options when using dumpsys
Option | Description |
-t timeout
Specify the timeout period in seconds. When not specified, the default value is 10 seconds. |
Print out help text for the dumpsys tool.
Output a complete list of system services that you can use with
dumpsys .
--skip services
Specify the services that you don't want to include in the output. |
service [arguments]
Specify the service that you want to output. Some services
may let you pass optional arguments. To learn about
these optional arguments, pass the -h option with the
adb shell dumpsys procstats -h |
When specifying certain services, append this option to output data in a machine-friendly format. |
For certain services, append this option to see help text and additional options for that service. |
Inspect input diagnostics
Specifying the input
service, as shown in the following command, dumps the
state of the system's input devices, such as keyboards and touchscreens, and the
processing of input events.
adb shell dumpsys input
The output varies depending on the version of Android running on the connected device. The following sections describe the type of information you typically see.
Event hub state
The following is a sample of what you might see when inspecting the Event Hub State of the input diagnostics:
INPUT MANAGER (dumpsys input) Event Hub State: BuiltInKeyboardId: -2 Devices: -1: Virtual Classes: 0x40000023 Path:Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd Location: ControllerNumber: 0 UniqueId: Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 KeyLayoutFile: /system/usr/keylayout/Generic.kl KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false 1: msm8974-taiko-mtp-snd-card Headset Jack Classes: 0x00000080 Path: /dev/input/event5 Descriptor: c8e3782483b4837ead6602e20483c46ff801112c Location: ALSA ControllerNumber: 0 UniqueId: Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 KeyLayoutFile: KeyCharacterMapFile: ConfigurationFile: HaveKeyboardLayoutOverlay: false 2: msm8974-taiko-mtp-snd-card Button Jack Classes: 0x00000001 Path: /dev/input/event4 Descriptor: 96fe62b244c555351ec576b282232e787fb42bab Location: ALSA ControllerNumber: 0 UniqueId: Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 KeyLayoutFile: /system/usr/keylayout/msm8974-taiko-mtp-snd-card_Button_Jack.kl KeyCharacterMapFile: /system/usr/keychars/msm8974-taiko-mtp-snd-card_Button_Jack.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false 3: hs_detect Classes: 0x00000081 Path: /dev/input/event3 Descriptor: 485d69228e24f5e46da1598745890b214130dbc4 Location: ControllerNumber: 0 UniqueId: Identifier: bus=0x0000, vendor=0x0001, product=0x0001, version=0x0001 KeyLayoutFile: /system/usr/keylayout/hs_detect.kl KeyCharacterMapFile: /system/usr/keychars/hs_detect.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false ...
Input reader state
The InputReader
is responsible for decoding input events from the kernel. Its
state dump shows information about how each input device is configured and
recent state changes that have occurred, such as key presses or touches on the
touch screen.
The following sample shows the output for a touch screen. Note the information about the resolution of the device and the calibration parameters that were used.
Input Reader State ... Device 6: Melfas MMSxxx Touchscreen IsExternal: false Sources: 0x00001002 KeyboardType: 0 Motion Ranges: X: source=0x00001002, min=0.000, max=719.001, flat=0.000, fuzz=0.999 Y: source=0x00001002, min=0.000, max=1279.001, flat=0.000, fuzz=0.999 PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000 TOUCH_MAJOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 TOUCH_MINOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 TOOL_MAJOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 TOOL_MINOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000 Touch Input Mapper: Parameters: GestureMode: spots DeviceType: touchScreen AssociatedDisplay: id=0, isExternal=false OrientationAware: true Raw Touch Axes: X: min=0, max=720, flat=0, fuzz=0, resolution=0 Y: min=0, max=1280, flat=0, fuzz=0, resolution=0 Pressure: min=0, max=255, flat=0, fuzz=0, resolution=0 TouchMajor: min=0, max=30, flat=0, fuzz=0, resolution=0 TouchMinor: unknown range ToolMajor: unknown range ToolMinor: unknown range Orientation: unknown range Distance: unknown range TiltX: unknown range TiltY: unknown range TrackingId: min=0, max=65535, flat=0, fuzz=0, resolution=0 Slot: min=0, max=9, flat=0, fuzz=0, resolution=0 Calibration: touch.size.calibration: diameter touch.size.scale: 10.000 touch.size.bias: 0.000 touch.size.isSummed: false touch.pressure.calibration: amplitude touch.pressure.scale: 0.005 touch.orientation.calibration: none touch.distance.calibration: none SurfaceWidth: 720px SurfaceHeight: 1280px SurfaceOrientation: 0 Translation and Scaling Factors: XScale: 0.999 YScale: 0.999 XPrecision: 1.001 YPrecision: 1.001 GeometricScale: 0.999 PressureScale: 0.005 SizeScale: 0.033 OrientationCenter: 0.000 OrientationScale: 0.000 DistanceScale: 0.000 HaveTilt: false TiltXCenter: 0.000 TiltXScale: 0.000 TiltYCenter: 0.000 TiltYScale: 0.000 Last Button State: 0x00000000 Last Raw Touch: pointerCount=0 Last Cooked Touch: pointerCount=0
At the end of the input reader state dump, there is some information about global configuration parameters, such as the tap interval:
Configuration: ExcludedDeviceNames: [] VirtualKeyQuietTime: 0.0ms PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000 WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000 PointerGesture: Enabled: true QuietInterval: 100.0ms DragMinSwitchSpeed: 50.0px/s TapInterval: 150.0ms TapDragInterval: 300.0ms TapSlop: 20.0px MultitouchSettleInterval: 100.0ms MultitouchMinDistance: 15.0px SwipeTransitionAngleCosine: 0.3 SwipeMaxWidthRatio: 0.2 MovementSpeedRatio: 0.8 ZoomSpeedRatio: 0.3
Input dispatcher state
The InputDispatcher
is responsible for sending input events to applications.
As shown in the following sample output, its state dump shows information about
which window is being touched, the state of the input queue, whether an ANR is
in progress, and other input event information:
Input Dispatcher State: DispatchEnabled: 1 DispatchFrozen: 0 FocusedApplication: <null> FocusedWindow: name='Window{3fb06dc3 u0 StatusBar}' TouchStates: <no displays touched> Windows: 0: name='Window{357bbbfe u0 SearchPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820100, type=0x000007e8, layer=211000, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms 1: name='Window{3b14c0ca u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01840068, type=0x000007e3, layer=201000, frame=[0,1776][1080,1920], scale=1.000000, touchableRegion=[0,1776][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms 2: name='Window{2c7e849c u0 com.vito.lux}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x0089031a, type=0x000007d6, layer=191000, frame=[-495,-147][1575,1923], scale=1.000000, touchableRegion=[-495,-147][1575,1923], inputFeatures=0x00000000, ownerPid=4697, ownerUid=10084, dispatchingTimeout=5000.000ms ... MonitoringChannels: 0: 'WindowManager (server)' RecentQueue: length=10 MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (335.0, 1465.0)]), policyFlags=0x62000000, age=217264.0ms MotionEvent(deviceId=4, source=0x00001002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (335.0, 1465.0)]), policyFlags=0x62000000, age=217255.7ms MotionEvent(deviceId=4, source=0x00001002, action=0, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (330.0, 1283.0)]), policyFlags=0x62000000, age=216805.0ms ... PendingEvent: <none> InboundQueue: <empty> ReplacedKeys: <empty> Connections: 0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 1: channelName='278c1d65 KeyguardScrim (server)', windowName='Window{278c1d65 u0 KeyguardScrim}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 2: channelName='357bbbfe SearchPanel (server)', windowName='Window{357bbbfe u0 SearchPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> ... AppSwitch: not pending 7: channelName='2280455f com.google.android.gm/com.google.android.gm.ConversationListActivityGmail (server)', windowName='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 8: channelName='1a7be08a com.android.systemui/com.android.systemui.recents.RecentsActivity (server)', windowName='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> 9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false OutboundQueue: <empty> WaitQueue: <empty> ... Configuration: KeyRepeatDelay: 50.0ms KeyRepeatTimeout: 500.0ms
Things to check
The following is a list of things to consider when inspecting the output
for the input
Event hub state:
- All the input devices you expect are present.
- Each input device has an appropriate key layout file, key character map file, and input device configuration file. If the files are missing or contain syntax errors, then they aren't loaded.
- Each input device is classified correctly. The bits in the
field correspond to flags inEventHub.h
, such asINPUT_DEVICE_CLASS_TOUCH_MT
. - The
is correct. If the device does not have a built-in keyboard, then the ID must be-2
. Otherwise, it should be the ID of the built-in keyboard. - If you observe that the
is not-2
but it should be, then you are missing a key character map file for a special function keypad. Special function keypad devices should have key character map files that contain only the linetype SPECIAL_FUNCTION
Input reader state:
- All the expected input devices are present.
- Each input device is configured correctly. In particular, check that the touch screen and joystick axes are correct.
Input dispatcher state:
- All input events are processed as expected.
- After touching the touch screen and running
at the same time, theTouchStates
line correctly identifies the window that you are touching.
Test UI performance
Specifying the gfxinfo
service provides output with performance information
relating to frames of animation that occur during the recording phase.
The following command uses gfxinfo
to gather UI performance data for a
specified package name:
adb shell dumpsys gfxinfo package-name
You can also include the framestats
option to provide even more detailed frame
timing information from recent frames, so that you can track down and debug
problems more accurately:
adb shell dumpsys gfxinfo package-name framestats
To learn more about using gfxinfo
and framestats
to integrate UI
performance measurements into your testing practices, see
Writing a Macrobenchmark.
Inspect network diagnostics
Specifying the netstats
service provides network usage statistics collected
since the previous device booted up. To output additional information, such as
detailed unique user ID (UID) information, include the detail
option, as
adb shell dumpsys netstats detail
The output varies depending on the version of Android running on the connected device. The following sections describe the type of information you typically see.
Active interfaces and active UID interfaces
The following sample output lists the active interfaces and active UID interfaces of the connected device. In most cases, the information for active interfaces and active UID interfaces is the same.
Active interfaces: iface=wlan0 ident=[{type=WIFI, subType=COMBINED, networkId="Guest"}] Active UID interfaces: iface=wlan0 ident=[{type=WIFI, subType=COMBINED, networkId="Guest"}]
'Dev' and 'Xt' statistics
The following is a sample output for the Dev statistics section:
Dev stats: Pending bytes: 1798112 History since boot: ident=[{type=WIFI, subType=COMBINED, networkId="Guest", metered=false}] uid=-1 set=ALL tag=0x0 NetworkStatsHistory: bucketDuration=3600 st=1497891600 rb=1220280 rp=1573 tb=309870 tp=1271 op=0 st=1497895200 rb=29733 rp=145 tb=85354 tp=185 op=0 st=1497898800 rb=46784 rp=162 tb=42531 tp=192 op=0 st=1497902400 rb=27570 rp=111 tb=35990 tp=121 op=0 Xt stats: Pending bytes: 1771782 History since boot: ident=[{type=WIFI, subType=COMBINED, networkId="Guest", metered=false}] uid=-1 set=ALL tag=0x0 NetworkStatsHistory: bucketDuration=3600 st=1497891600 rb=1219598 rp=1557 tb=291628 tp=1255 op=0 st=1497895200 rb=29623 rp=142 tb=82699 tp=182 op=0 st=1497898800 rb=46684 rp=160 tb=39756 tp=191 op=0 st=1497902400 rb=27528 rp=110 tb=34266 tp=120 op=0
UID stats
The following is a sample of detailed statistics for each UID:
UID stats: Pending bytes: 744 Complete history: ident=[[type=MOBILE_SUPL, subType=COMBINED, subscriberId=311111...], [type=MOBILE, subType=COMBINED, subscriberId=311111...]] uid=10007 set=DEFAULT tag=0x0 NetworkStatsHistory: bucketDuration=7200000 bucketStart=1406167200000 activeTime=7200000 rxBytes=4666 rxPackets=7 txBytes=1597 txPackets=10 operations=0 ident=[[type=WIFI, subType=COMBINED, networkId="MySSID"]] uid=10007 set=DEFAULT tag=0x0 NetworkStatsHistory: bucketDuration=7200000 bucketStart=1406138400000 activeTime=7200000 rxBytes=17086802 rxPackets=15387 txBytes=1214969 txPackets=8036 operations=28 bucketStart=1406145600000 activeTime=7200000 rxBytes=2396424 rxPackets=2946 txBytes=464372 txPackets=2609 operations=70 bucketStart=1406152800000 activeTime=7200000 rxBytes=200907 rxPackets=606 txBytes=187418 txPackets=739 operations=0 bucketStart=1406160000000 activeTime=7200000 rxBytes=826017 rxPackets=1126 txBytes=267342 txPackets=1175 operations=35
To find the UID for your app, run this command: adb shell dumpsys
package your-package-name
. Then look for the line labeled
For example, to find network usage for the app 'com.example.myapp', run the following command:
adb shell dumpsys package com.example.myapp | grep userId
The output should be similar to the following:
userId=10007 gids=[3003, 1028, 1015]
Using the preceding sample dump, look for lines that have uid=10007
. Two such
lines exist—the first indicates a mobile connection and the second indicates a
Wi-Fi connection. Below each line, you can see the following information for
each two-hour window, which bucketDuration
specifies in milliseconds:
indicates foreground network usage, whileset=BACKGROUND
indicates background usage.set=ALL
implies both. -
indicates the socket tag associated with the traffic. -
represent received bytes and received packets in the corresponding time interval. -
represent sent (transmitted) bytes and sent packets in the corresponding time interval.
Inspect battery diagnostics
Specifying the batterystats
service generates statistical data
about battery usage on a device, organized by unique user ID (UID). To learn how
to use dumpsys
to test your app for Doze and App Standby, see
Testing with Doze and App Standby.
The command for batterystats
is as follows:
adb shell dumpsys batterystats options
To see a list of additional options available to batterystats
, include the
option. The following example outputs battery usage statistics for a
specified app package since the device was last charged:
adb shell dumpsys batterystats --charged package-name
The output typically includes the following:
- History of battery-related events
- Global statistics for the device
- Approximate power use per UID and system component
- Per-app mobile milliseconds per packet
- System UID aggregated statistics
- App UID aggregated statistics
To learn more about using batterystats
and generating an HTML visualization of
the output, which makes it easier to understand and diagnose battery-related
issues, read Profile battery usage with Batterystats and Battery Historian.
Inspect machine-friendly output
You can generate batterystats
output in machine-readable CSV format by using
the following command:
adb shell dumpsys batterystats --checkin
The following is an example of the output:
9,0,i,vers,11,116,K,L 9,0,i,uid,1000,android 9,0,i,uid,1000,com.android.providers.settings 9,0,i,uid,1000,com.android.inputdevices 9,0,i,uid,1000,com.android.server.telecom ... 9,0,i,dsd,1820451,97,s-,p- 9,0,i,dsd,3517481,98,s-,p- 9,0,l,bt,0,8548446,1000983,8566645,1019182,1418672206045,8541652,994188 9,0,l,gn,0,0,666932,495312,0,0,2104,1444 9,0,l,m,6794,0,8548446,8548446,0,0,0,666932,495312,0,697728,0,0,0,5797,0,0 ...
Battery-usage observations may be per UID or system-level. Data is selected for inclusion based on its usefulness in analyzing battery performance. Each row represents an observation, with the following elements:
- A placeholder integer
- The user ID associated with the observation
- The aggregation mode:
for information not tied to charged/uncharged status.l
(usage since last charge).u
(usage since last unplugged). Deprecated in Android 5.1.1.
- Section identifier, which determines how to interpret subsequent values in the line.
The following table describes the various section identifiers you may see:
Section identifier | Description | Remaining fields |
Version |
Process |
Sensor |
Vibrator |
Foreground |
State Time |
Wake lock |
Sync |
Job |
Kernel Wake Lock |
Wakeup Reason |
Network |
User Activity |
Battery |
Battery Discharge |
Battery Level |
Wi-Fi |
Global Wi-Fi |
Global Bluetooth |
Misc |
Global Network |
Screen Brightness |
Signal Scanning Time |
Signal Strength Time |
Signal Strength Count |
Data Connection Time |
Data Connection Count |
Wi-Fi State Time |
Wi-Fi State Count |
Wi-Fi Supplicant State Time |
Wi-Fi Supplicant State Count |
Wi-Fi Signal Strength Time |
Wi-Fi Signal Strength Count |
Bluetooth State Time |
Bluetooth State Count |
Power Use Summary |
Power Use Item |
Discharge Step |
Charge Step |
Discharge Time Remaining |
Charge Time Remaining |
Note: Prior to Android 6.0, power use for
Bluetooth radio, cellular radio, and Wi-Fi was tracked in the m
section category. In Android 6.0 and higher, power use for these components is
tracked in the pwi
(Power Use Item) section with individual labels
, blue
, cell
) for each component.
View memory allocations
You can inspect your app's memory usage in one of two ways: over a period of
time using procstats
or at a particular point in time using meminfo
The following sections show you how to use both methods.
makes it possible to see how your app behaves over time,
including how long it runs in the background and how much memory it uses during
that time. It helps you quickly find inefficiencies and misbehaviors in your
app, such as memory leaks, that can affect how it performs, especially when
running on low-memory devices. Its state dump displays statistics about every
application's runtime, proportional set size (PSS), unique set size (USS), and
resident set size (RSS).
To get application memory usage stats over the last three hours, in human-readable format, run the following command:
adb shell dumpsys procstats --hours 3
As shown in the following example, the output displays what percentage
of time the application was running and the PSS, USS, and RSS as
the number of samples.
AGGREGATED OVER LAST 3 HOURS: * com.android.systemui / u0a37 / v28: TOTAL: 100% (15MB-16MB-17MB/7.7MB-8.7MB-9.4MB/7.7MB-9.6MB-84MB over 178) Persistent: 100% (15MB-16MB-17MB/7.7MB-8.7MB-9.4MB/7.7MB-9.6MB-84MB over 178) * com.android.se / 1068 / v28: TOTAL: 100% (2.8MB-2.9MB-2.9MB/300KB-301KB-304KB/304KB-22MB-33MB over 3) Persistent: 100% (2.8MB-2.9MB-2.9MB/300KB-301KB-304KB/304KB-22MB-33MB over 3) * com.google.android.gms.persistent / u0a7 / v19056073: TOTAL: 100% (37MB-38MB-40MB/27MB-28MB-29MB/124MB-125MB-126MB over 2) Imp Fg: 100% (37MB-38MB-40MB/27MB-28MB-29MB/124MB-125MB-126MB over 2) ... * com.android.gallery3d / u0a62 / v40030: TOTAL: 0.01% Receiver: 0.01% (Cached): 54% (6.4MB-6.5MB-6.9MB/4.4MB-4.4MB-4.4MB/4.4MB-26MB-68MB over 6) * com.google.android.tvlauncher / u0a30 / v1010900130: TOTAL: 0.01% Receiver: 0.01% (Cached): 91% (5.8MB-13MB-14MB/3.5MB-10MB-12MB/12MB-33MB-78MB over 6) * com.android.vending:instant_app_installer / u0a16 / v81633968: TOTAL: 0.01% Receiver: 0.01% (Cached): 100% (14MB-15MB-16MB/3.8MB-4.2MB-5.1MB/3.8MB-30MB-95MB over 7) ... Run time Stats: SOff/Norm: +32m52s226ms SOn /Norm: +2h10m8s364ms Mod : +17s930ms TOTAL: +2h43m18s520ms Memory usage: Kernel : 265MB (38 samples) Native : 73MB (38 samples) Persist: 262MB (90 samples) Top : 190MB (325 samples) ImpFg : 204MB (569 samples) ImpBg : 754KB (345 samples) Service: 93MB (1912 samples) Receivr: 227KB (1169 samples) Home : 66MB (12 samples) LastAct: 30MB (255 samples) CchAct : 220MB (450 samples) CchCAct: 193MB (71 samples) CchEmty: 182MB (652 samples) Cached : 58MB (38 samples) Free : 60MB (38 samples) TOTAL : 1.9GB ServRst: 50KB (278 samples) Start time: 2015-04-08 13:44:18 Total elapsed time: +2h43m18s521ms (partial) libart.so
You can record a snapshot of how your app's memory is divided between different types of RAM allocation with the following command:
adb shell dumpsys meminfo package_name|pid [-d]
The -d
flag prints more info related to Dalvik and ART memory usage.
The output lists all of your app's current allocations, measured in kilobytes.
When inspecting this information, you should be familiar with the following types of allocation:
- Private (Clean and Dirty) RAM
- This is memory that is being used by only your process. This is the bulk of the RAM that the system can reclaim when your app's process is destroyed. Generally, the most important portion of this is private dirty RAM, which is the most expensive because it is used by only your process and because its contents exist only in RAM, so can't be paged to storage, because Android does't use swap. All Dalvik and native heap allocations you make are private dirty RAM. Dalvik and native allocations you share with the Zygote process are shared dirty RAM.
- Proportional Set Size (PSS)
- This is a measurement of your app's RAM use that takes into account sharing pages across processes. Any RAM pages that are unique to your process directly contribute to its PSS value, while pages that are shared with other processes contribute to the PSS value only in proportion to the amount of sharing. For example, a page shared between two processes contributes half of its size to the PSS of each process.
A characteristic of the PSS measurement is that you can add up the PSS across all processes to determine the actual memory being used by all processes. This means PSS is a good measure for the actual RAM weight of a process and for comparison against the RAM use of other processes and the total available RAM.
For example, the following is the output for Map's process on a Nexus 5 device:
adb shell dumpsys meminfo com.google.android.apps.maps -d
Note: The information you see might vary slightly from what is shown here, because some details of the output differ across platform versions.
** MEMINFO in pid 18227 [com.google.android.apps.maps] ** Pss Private Private Swapped Heap Heap Heap Total Dirty Clean Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ ------ Native Heap 10468 10408 0 0 20480 14462 6017 Dalvik Heap 34340 33816 0 0 62436 53883 8553 Dalvik Other 972 972 0 0 Stack 1144 1144 0 0 Gfx dev 35300 35300 0 0 Other dev 5 0 4 0 .so mmap 1943 504 188 0 .apk mmap 598 0 136 0 .ttf mmap 134 0 68 0 .dex mmap 3908 0 3904 0 .oat mmap 1344 0 56 0 .art mmap 2037 1784 28 0 Other mmap 30 4 0 0 EGL mtrack 73072 73072 0 0 GL mtrack 51044 51044 0 0 Unknown 185 184 0 0 TOTAL 216524 208232 4384 0 82916 68345 14570 Dalvik Details .Heap 6568 6568 0 0 .LOS 24771 24404 0 0 .GC 500 500 0 0 .JITCache 428 428 0 0 .Zygote 1093 936 0 0 .NonMoving 1908 1908 0 0 .IndirectRef 44 44 0 0 Objects Views: 90 ViewRootImpl: 1 AppContexts: 4 Activities: 1 Assets: 2 AssetManagers: 2 Local Binders: 21 Proxy Binders: 28 Parcel memory: 18 Parcel count: 74 Death Recipients: 2 OpenSSL Sockets: 2
Here is an older dumpsys
on Dalvik of the Gmail app:
** MEMINFO in pid 9953 [com.google.android.gm] ** Pss Pss Shared Private Shared Private Heap Heap Heap Total Clean Dirty Dirty Clean Clean Size Alloc Free ------ ------ ------ ------ ------ ------ ------ ------ ------ Native Heap 0 0 0 0 0 0 7800 7637(6) 126 Dalvik Heap 5110(3) 0 4136 4988(3) 0 0 9168 8958(6) 210 Dalvik Other 2850 0 2684 2772 0 0 Stack 36 0 8 36 0 0 Cursor 136 0 0 136 0 0 Ashmem 12 0 28 0 0 0 Other dev 380 0 24 376 0 4 .so mmap 5443(5) 1996 2584 2664(5) 5788 1996(5) .apk mmap 235 32 0 0 1252 32 .ttf mmap 36 12 0 0 88 12 .dex mmap 3019(5) 2148 0 0 8936 2148(5) Other mmap 107 0 8 8 324 68 Unknown 6994(4) 0 252 6992(4) 0 0 TOTAL 24358(1) 4188 9724 17972(2)16388 4260(2)16968 16595 336 Objects Views: 426 ViewRootImpl: 3(8) AppContexts: 6(7) Activities: 2(7) Assets: 2 AssetManagers: 2 Local Binders: 64 Proxy Binders: 34 Death Recipients: 0 OpenSSL Sockets: 1 SQL MEMORY_USED: 1739 PAGECACHE_OVERFLOW: 1164 MALLOC_SIZE: 62
In general, be concerned with only the Pss Total
and Private Dirty
In some cases, the Private Clean
and Heap Alloc
columns also
provide interesting data.
The following provides more information about the different memory allocations you should observe:
Dalvik Heap
- The RAM used by Dalvik allocations in your app. The
Pss Total
includes all Zygote allocations, weighted by their sharing across processes, as described in the PSS definition. ThePrivate Dirty
number is the actual RAM committed to only your app's heap, composed of your own allocations and any Zygote allocation pages that have been modified since forking your app's process from Zygote.Note: On newer platform versions that have the
Dalvik Other
section, thePss Total
andPrivate Dirty
numbers for Dalvik Heap don't include Dalvik overhead, such as the just-in-time compilation (JIT) and GC bookkeeping, whereas older versions list it all combined underDalvik
Heap Alloc
is the amount of memory that the Dalvik and native heap allocators keep track of for your app. This value is larger thanPss Total
andPrivate Dirty
because your process was forked from Zygote and includes allocations that your process shares with all the others. .so mmap
and.dex mmap
- The RAM being used for mapped
(native) and.dex
(Dalvik or ART) code. ThePss Total
number includes platform code shared across apps.Private Clean
is your app's own code. Generally, the actual mapped size is larger. The RAM here is only what currently needs to be in RAM for code that has been executed by the app. However, the.so mmap
has a large private dirty, which is due to fix-ups to the native code when it was loaded into its final address. .oat mmap
- This is the amount of RAM used by the code image. It's based on the preloaded classes commonly used by multiple apps. This image is shared across all apps and is unaffected by particular apps.
.art mmap
- This is the amount of RAM used by the heap image. It's based on the
preloaded classes commonly used by multiple apps. This image is shared across
all apps and is unaffected by particular apps. Even though the ART image
instances, it doesn't count towards your heap size. .Heap
(only with-d
flag)- This is the amount of heap memory for your app. This excludes objects in the image and large object spaces, but includes the Zygote space and non-moving space.
(only with-d
flag)- This is the amount of RAM used by the ART large object space. This includes Zygote large objects. Large objects are all primitive array allocations larger than 12KB.
(only with-d
flag)- This is the overhead cost for garbage collection. There is no way to reduce this overhead.
(only with-d
flag)- This is the amount of memory used by the JIT data and code caches. Typically, this is zero, since all apps are compiled at install time.
(only with-d
flag)- This is the amount of memory used by the Zygote space. The Zygote space is created during device startup and is never allocated.
(only with-d
flag)- This is the amount of RAM used by the ART non-moving space. The non-moving space contains special non-movable objects such as fields and methods. You can reduce this section by using fewer fields and methods in your app.
(only with-d
flag)- This is the amount of RAM used by the ART indirect reference tables. Usually this amount is small, but if it is too high, you might be able to reduce it by reducing the number of local and global JNI references used.
- Any RAM pages that the system couldn't classify into one of the other more
specific items. Currently, this contains mostly native allocations, which can't
be identified by the tool when collecting this data due to Address Space Layout
Randomization (ASLR). Like the Dalvik heap, the
Pss Total
takes into account sharing with Zygote, andPrivate Dirty
is unknown RAM dedicated to only your app. TOTAL
- The total Proportional Set Size (PSS) RAM used by your process. This is the
sum of all PSS fields above it. It indicates the overall memory weight of your
process, which can be directly compared with other processes and the total
available RAM.
Private Dirty
andPrivate Clean
are the total allocations within your process, which are not shared with other processes. When your process is destroyed, all the RAM from these allocations is released back to the system.Private Clean
can also be paged out and released prior to your process being destroyed, butPrivate Dirty
is only released on process destruction.Dirty RAM is pages that have been modified and so must stay committed to RAM because there is no swap. Clean RAM is pages that have been mapped from a persistent file, such as code being executed, and can be paged out if not used for a while.
- The number of root views that are active in your process. Each root view is associated with a window, so this can help you identify memory leaks involving dialogs or other windows.
- The number of app
objects that currently live in your process. This can help you to quickly identify leakedActivity
objects that can't be garbage collected due to static references on them, which is common. These objects often have many other allocations associated with them, which makes them a good way to track large memory leaks.


text:
Collingsworth Family
Excitement, spiritual anointing, family-emphasis, and musical excellence are what you can expect to find when you step across the threshold of the auditorium for an Evening of Family Worship and Praise with The Collingsworth Family.
Since their first engagement together as musicians for a church camp in Petersburg, Michigan in August, 1986 until now, the ministry God has given Phil & Kim has expanded and flourished until it is a full-time livelihood that involves their entire family. Their boundaries of influence have expanded until they have sung and played all over the United States (as well as internationally) into their 25th year of ministry. Their constant, persistent attention to cutting-edge arranging, musical excellence, and a proper balance of spiritual emphasis are the keys to success God has helped them tap.
Phil & Kim's actual base of ministry began during their college days. Phil is a 1986 graduate of God's Bible School & College, Cincinnati, OH. This is the famous, 100+ year old college that is well-known within Christian education ranks for having been the American college where Oswald Chambers ("My Utmost For His Highest") taught. Phil also completed professional trumpet studies at College Conservatory of Music, University of Cincinnati and earned a Bachelor of Sacred Music degree with a double major in trumpet performance and music education. Kim attended Union Bible College, Westfield, IN where she was very instrumental in arranging most of the music that was performed by the college's traveling music groups.
Since that time, many ministry opportunities have come across their pathway. They have always maintained a public performance ministry, which for the first fourteen years included doing music presentations for church camps and extended-length revival campaigns. They have also held the positions of Ministers of Music, Hobe Sound Bible Church, Hobe Sound, FL; Director, Music Division, Union Bible College, Westfield, IN; and Phil was Dean of Enrollment Management at his Alma Mater, God's Bible School & College, Cincinnati, OH.
In January, 2000, Phil & Kim transitioned to a new, all-concert ministry. They began recording professionally and currently exclusively utilize one of Nashville's most award winning producers, Wayne Haun. This new emphasis began to expand their boundaries rapidly. Their home has seen the addition of four children across the years and the children are now very actively involved in the ministry. Their two oldest daughters are quite proficient on the violin and play at each of their concerts. Their entire family sings together in an ensemble as well as Brooklyn, their 22 yr old daughter, joining them in trio vocals for most of the program. Kim is well-known for her phenomenal mastery of the piano and the extraordinary talent God has given her is a part of each concert, as well as trumpet solos from Phil.
Their newest full-scale studio project, Part of the Family, released September 2011, includes their current national radio single, Tell The Mountain written by Lee Black, Sue Smith & Kenna West and promoted to radio by Rhonda Thompson Promotions.
They previously released a "first" in the Christian Music Industry, filming two full length music videos at the famed Music Hall in Cincinnati, OH, the home of the world-class Cincinnati Symphony Orchestra. The two filmings were the first Christian concerts ever to be filmed at a major symphony venue. They have also released two videos filmed in High Definition by Gaither Television Productions with the Flint Symphony Orchestra, Flint, MI.
On January 1, 2004, they signed an exclusive booking agreement with The Dominion Agency of Fayetteville, NC, which now represents them in all personal appearances. On March 1, 2011, they move into a new multi year, exclusive recording agreement with StowTown Records, Nashville, TN, one of Gospel Music's newest and most exciting record companies, owned by Ernie Haase and Wayne Haun. Collingsworth Family recorded products are marketed nationally to the CBA Market thru Provident Distribution and to secular markets by Sony Music.
Their ministry has been featureded on the nation's largest gospel music syndicated radio program, The Gospel Greats with Paul Heil as well as on Daniel Britt & Friends on XM/SIRIUS Satellite Radio's Enlighten. Their music is regularly featured on Enlighten, GMT (Gospel Music Television), The DayStar Television Network, and has also been featured in one hour prime-time specials on the INSP Television Network. The Collingsworth Family, at the personal invitation of Bill & Gloria Gaither, appeared on the newest Homecoming Series taping filmed at the Grand Ole Opry in Nashville, TN. They have also been added as regulars on many of the Gaither Homecoming Concerts, making appearances with Gaithers in some of their largest venues in the US and Canada. Their personal appearance schedule shows the broad appeal their family emphasis has, performing in all types of venues across the US, the Cayman Islands, and recently in Sweden.
The rapid expansion they have seen occur with the transition to an all-concert ministry is a direct result of the emphasis they have placed on the power of prayer. Each Tuesday evening, they hold a private prayer meeting in their home for the specific purpose of praying for the salvation of their children and the expansion of their ministry. Since the beginning of these weekly prayer meetings in 2000, the doors of opportunity for ministry have opened to them, crossing all evangelical denominational boundaries. Phil & Kim's entire purpose is to give the talent God has loaned them back to their Creator as a sacrifice of praise.
Blue Gate Performing Arts Center
760 S Van Buren St
Shipshewana, IN 46565
Ticket Prices | $29.95 – 64.95 (plus tax & fees)