小编Ste*_*ard的帖子

如何在 Android 上解释 /proc/meminfo 的值?

我正在编写一个需要测量当前可用/已用 RAM 的 Android 应用程序。

搜索此站点显示多个主题相似的主题,通常建议两种方法:


方法一:

MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
totalMegs = mi.totalMem / 1048576L;  //available since API 16 only
Run Code Online (Sandbox Code Playgroud)

方法二:解析/proc/meminfo。

我已经尝试了这两种方法,它们似乎工作正常。我从两种方法中得到相同的值。我的问题是,当我转到Settings -> Apps -> Running屏幕底部时,是有关可用/已用 RAM 的信息,这与我使用上述方法获得的信息不同。我怀疑 Google 确实将缓存的应用程序报告为可用内存,因为当我杀死一些缓存进程时,Google 报告的 RAM 使用量几乎没有变化,但我的应用程序的数量接近我刚刚杀死的正在运行的进程的大小。

例子:

方法 1 输出:

meminfo: avail: 660, total: 821, used: 161
Run Code Online (Sandbox Code Playgroud)

方法2输出:

root@android:/proc # cat meminfo
MemTotal:         840868 kB
MemFree:          548080 kB
Buffers:               0 kB
Cached:           128300 kB
SwapCached:            0 kB
Active: …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
6005
查看次数

为什么没有DateTime.ToString("R")和DateTime.TryParseExact往返?

我正在Web服务中实现条件请求.后端可以轻松检索实体的最后修改日期,因此我发送Last-Modified并返回If-Modified-Since.HTTP日期RFC指定的格式与.NET中"R"格式说明符相同.

问题是DateTime.ToString("R")正确格式化日期,但传递"R"ParseExact后面没有读取时区(有一个"往返"说明符"O",但它不是我需要的格式).这是LinqPad中的一个例子:

DateTime lastModified = new DateTime(2015, 10, 01, 00, 00, 00, DateTimeKind.Utc);
string lastModifiedField = lastModified.ToString("R"); // Thu, 01 Oct 2015 00:00:00 GMT
DateTime ifModifiedSince = DateTime.ParseExact(
   lastModifiedField, "R", CultureInfo.InvariantCulture);

ifModifiedSince.Kind.Dump(); // Unspecified
Run Code Online (Sandbox Code Playgroud)

我当然可以使用解析的方法DateTime来迫使它进入我想要的格式,但我怎么能得到的框架,使用已经存在的数据?

c# datetime datetimeoffset

4
推荐指数
1
解决办法
451
查看次数

根据多个分隔符获取部分字符串?

我有一个带括号的字符串,我希望只提取括号内的字符串部分.

例如,从以下字符串:

"abc(def)ghi"
Run Code Online (Sandbox Code Playgroud)

我想得到"def",没有括号.

我做了一些搜索,但到目前为止我发现的最接近的是String.Split():

string s = "3,2,4,5,6";
string[] words = s.Split(',');
Run Code Online (Sandbox Code Playgroud)

但String.Split一次只需要1个分隔符.有没有更好的方法只抓住括号内的字符串?

c# string split delimiter

3
推荐指数
1
解决办法
120
查看次数

标签 统计

c# ×2

android ×1

datetime ×1

datetimeoffset ×1

delimiter ×1

split ×1

string ×1