您现在的位置是: 首页 > 笔记本电脑 笔记本电脑
android 42_
tamoadmin 2024-08-30 人已围观
简介1.android 什么情况会导致wpa2.设计师设计 Android UI 应该用多大分辨率进行设计?3.如何实现多个APK间共享一个进程4.android屏幕适配有哪些方法5.Android手机内存卡中的文件夹分别代表什么软件?1080*1920状态栏:24dp APPBAR(导航栏)最小高度:56dp 菜单栏高度(包含底部):48dp栅格系统的最小单位是8dp,一距离、尺寸都应该是8dp的整
1.android 什么情况会导致wpa
2.设计师设计 Android UI 应该用多大分辨率进行设计?
3.如何实现多个APK间共享一个进程
4.android屏幕适配有哪些方法
5.Android手机内存卡中的文件夹分别代表什么软件?
1080*1920
状态栏:24dp
APPBAR(导航栏)最小高度:56dp
菜单栏高度(包含底部):48dp
栅格系统的最小单位是8dp,一距离、尺寸都应该是8dp的整数倍。以下是一些常见的尺寸与距离:
图标和字体大小:
a、启动图标(home页或列表页)整体大小为48 x 48 dp 没有空白的区域的7”完整图标。 当然也可以是包含空白区域的图标等于48dp。
b、操作栏图标,代表用户在中可以使用到的最重要的图标整体大小为32 x 32 dp ,图形实际区域为 24 x 24 dp。
c、小图标/场景图标,提供操作或特定项目的状态。
比如gmail 的星型标记、一些内容展开收起用到的向下向上的图标等。整体大小为16 x 16 dp ,图形实际区域为 12 x 12 dp 。
d、通知图标
如果有通知,要提供一个有新通知时显示在状态栏的通知图标。整体大小为24 x 24 dp ,图形实际区域为 22 x 22 dp 。
对图标尺寸进行分类整理,便于界面整体调一致。
第三部分、android的按钮和弹出层的设计规范参考。
在720 x 1280 px 的设计稿上,有两个按钮(比如登录、注册)并排一行放置,按钮尺寸最小范围均为240 x 80 px ,换算为android开发单位就是 120 x 40 dp 。
Android APP设计字体单位: Sp 与 Px 的换算
sp与px的换算公式:sp*ppi/160 = px
ldpi(240*320):120
mdpi(320*480):160 ? 倍率为1
hdpi(480*800):240
xhdpi(720*1080):320
xxhdpi(1080*1920):480
xxxhdpi:640(1440*2560):4
字体规范
注释最小字体12sp
文本字体14sp
文章标题/图标名称18sp
导航标题22sp
ppi为240时字体高度:
注释最小字体:18sp
文本:21sp
文章标题/图标名称:27sp
导航标题:42sp
字体:
Android 系统默认的英文字体 Roboto,默认中文字体都是droid sans fallback、思源黑体
material design字体规范:英文字体使用Roboto,中文字体使用Noto。
Roboto有6种字重:Thin、Light、Regular、Medium、Bold 和 Black。
Noto有7种字重:Thin, Light、DemiLight、Regular、Medium、Bold 和 Black。
字体配色:
颜色不宜过多,选择一种主色、一种色。在此基础上进行明度和饱和度的变化,构成配色方案。
bar背景使用主色,状态栏背景使用深一级的主色或20%透明度的纯黑。
小面积需要高亮显示的地方使用色
其余颜色通过纯黑#000000与纯白#ffffff的透明度变化来展现(包括图标和分隔线),而且透明度限定了几个值。
黑色:[87% 普通文字] [54% 减淡文字] [26% 禁用状态/提示文字] [12% 分隔线]
白色:[100% 普通文字] [70% 减淡文字] [30% 禁用状态/提示文字] [12% 分隔线]
行距
用sp与px之间的关系进行换算。
元素之间间距间距:
所有可操作元素最小点击区域尺寸:48dp X 48dp。
栅格系统的最小单位是8dp,一距离、尺寸都应该是8dp的整数倍。以下是一些常见的尺寸与距离:
顶部状态栏高度:24dp
Appbar(导航栏)最小高度:56dp
底部导航栏高度:48dp
悬浮按钮尺寸:56x56dp/40x40dp
用户头像尺寸:64x64dp/40x40dp
小图标点击区域:48x48dp
侧边抽屉到屏幕右边的距离:56dp
卡片间距:8dp
分隔线上下留白:8dp
大多元素的留白距离:16dp
屏幕左右对齐基线:16dp
文字左侧对齐基线:72dp
另外注意56dp这个数字,许多尺寸可变的控件,比如对话框、菜单等,宽度都可以按56的整数倍来设计。
还有非常多规范,不详细列举,遵循8dp栅格很容易找到适合的尺寸与距离。平板与PC上留白更多,距离与尺寸要相应增大。
单行、多行间距要控制下,做出规律。
标题42点(14sp) ?副标题36点(12sp)
主标题与副标题间距12sp
注释:多行主标题行间距为8sp
标题48点(16sp) ?副标题42点(14sp)
主标题与副标题(单行)间距8sp
标题42点(16sp) ?副标题42点(14sp)
主标题与副标题(单行)间距10sp
带分割线的列表上下间距等分,距离为16sp
不带分割线的列表上下间距为32sp。
解释说明类的列表项上下间距为22sp。
悬浮按钮距离底部的距离为:18sp
文字排版
常用字号:
。12sp 小字提示14sp(桌面端13sp)
。正文/按钮文字16sp(桌面端15sp)
。小标题20sp Appbar文字24sp
。大标题34sp/45sp/56sp/112sp 超大号文字
长篇幅正文,每行建议60字符(英文)左右。短文本,建议每行30字符(英文)左右。
心得与体会:设计时,可参照设计规范进行设计,具体到项目时可根据项目的具体情况制定规范。
尝试8的倍数,如果不合适,在3的倍率中能够被3整除。
设计来源于细节,再小的细节中也要分等级。
ps cc 2017
adobe xd 交互设计神器。
adobe stock?
svg格式字体
.9最小点击区域不足48dp*48dp
android 什么情况会导致wpa
android 技术内幕系统卷
第1章 准备工作 /1 1.1 深入认识android /2 1.1.1 android的系统构架 /2 1.1.2 android的初始化流程 /5 1.1.3 各个层次之间的相互关系 /8 1.1.4 android系统开发(移植)和应用开发 /11 1.2 获取和编译android的源码 /13 1.2.1 环境配置 /13 1.2.2 获取android源码 /14 1.2.3 编译android的源码及其工具包 /16 1.2.4 运行android系统 /21 1.3 开发环境搭建 /23 1.3.1 应用开发环境搭建 /23 1.3.2 源码开发环境搭建 /26 1.4 android源码结构 /32 1.5 小结 /33 第2章 android的内核机制和结构剖析 /34 2.1 linux与android的关系 /35 .2.1.1 为什么会选择linux /35 2.1.2 android不是linux /35 2.2 android对linux内核的改动 /37 2.2.1 goldfish /37 2.2.2 yaffs2 /38 2.2.3 蓝牙 /39 2.2.4 调度器(scheduler)/39 2.2.5 android新增的驱动 /40 2.2.6 电源管理 /41 2.2.7 杂项 /41 2.3 android对linux内核的增强 /42 2.3.1 alarm(硬件时钟)/43 2.3.2 ashmem(匿名内存共享)/46 2.3.3 low memory killer(低内存管理)/52 2.3.4 logger(日志设备)/56 2.3.5 android pmem /65 2.3.6 switch /79 2.3.7 timed gpio /88 2.3.8 android ram console /94 2.4 小结 /99 第3章 android的ipc机制--binder /100 3.1 binder概述 /101 3.1.1 为什么选择binder /101 3.1.2 初识binder /102 3.2 binder驱动的原理和实现 /102 3.2.1 binder驱动的原理 /102 3.2.2 binder驱动的实现 /103 3.3 binder的构架与实现 /132 3.3.1 binder的系统构架 /132 3.3.2 binder的机制和原理 /133 3.4 小结 /150 第4章 电源管理 /151 4.1 电源管理概述 /152 4.2 电源管理结构 /152 4.3 android的电源管理机制 /153 4.4 android电源管理机制的实现 /154 4.5 小结 /187 第5章 驱动的工作原理及实现机制 /188 5.1 显示驱动(framebuffer)/189 5.1.1 framebuffer的工作原理 /189 5.1.2 framebuffer的构架 /190 5.1.3 framebuffer驱动的实现机制 /190 5.2 驱动(v4l和v4l2)/201 5.2.1 v4l2介绍 /201 5.2.2 v4l2的原理和构架 /201 5.2.3 v4l2的实现 /202 5.3 音频驱动(oss和alsa)/208 5.3.1 oss与alsa介绍 /208 5.3.2 oss的构架与实现 /209 5.3.3 alsa的构架与实现 /213 5.4 mtd驱动 /214 5.4.1 mtd驱动的功能 /214 5.4.2 mtd驱动的构架 /215 5.4.3 mtd驱动的原理及实现 /215 5.5 event输入设备驱动 /223 5.5.1 input的系统构架 /223 5.5.2 event输入驱动的构架 /224 5.5.3 event输入驱动的原理 /224 5.5.4 event输入驱动的实现 /225 5.6 蓝牙驱动(bluetooth)/235 5.6.1 bluetooth驱动的构架 /235 5.6.2 bluez的原理及实现 /237 5.7 wlan驱动(wi-fi)/244 5.7.1 wlan构架 /244 5.7.2 wi-fi驱动的实现原理 /245 5.8 小结 /245 第6章 原生库的原理及实现 /246 6.1 系统c库(bionic libc)/247 6.1.1 bionic libc功能概述 /247 6.1.2 bionic libc实现原理 /248 6.2 功能库 /258 6.2.1 webkit构架与实现 /258 6.2.2 多媒体框架与实现 /275 6.2.3 android sqlite框架及原理 /285 6.3 扩展库 /289 6.3.1 skia底层库分析 /289 6.3.2 opengl底层库分析 /299 6.3.3 android-openssl实现及运用 /306 6.3.4 freetype及font engine manager /317 6.3.5 freetype结构体系和渲染流程 /317 6.4 原生服务 /328 6.4.1 audioflinger实现 /328 6.4.2 surfaceflinger实现 /341 6.5 小结 /353 第7章 硬件抽象层的原理与实现 /354 7.1 硬件抽象层的实现原理 /355 7.1.1 android hal构架 /355 7.1.2 android hal的实现 /357 7.2 android overlay构架与实现 /361 7.2.1 android overlay系统构架 /361 7.2.2 overlay hal框架与实现 /362 7.2.3 overlay与surfacefinger /369 7.3 android camera 构架与实现 /375 7.3.1 android camera系统构架 /375 7.3.2 camera hal框架与实现 /377 7.3.3 camera本地实现 /385 7.4 android audio hal实现 /394 7.4.1 audio hal框架 /395 7.4.2 android默认的audio hal实现 /398 7.4.3 dump功能的audio hal实现 /400 7.4.4 基于a2dp的蓝牙音频设备hal实现 /402 7.4.5 模拟器上的audio hal实现 /403 7.5 android ril实现 /404 7.5.1 android ril构架 /404 7.5.2 radiooptiongs实现 /407 7.5.3 libril库实现 /409 7.5.4 reference-ril库实现 /415 7.5.5 rild守护进程实现 /418 7.5.6 request流程分析 /423 7.5.7 response流程分析 /427 7.6 android sensor hal实现 /434 7.6.1 android sensor构建 /434 7.6.2 sensor hal接口 /435 7.6.3 sensor hal实现 /438 7.7 android wifi hal实现 /441 7.7.1 android wifi系统构架 /441 7.7.2 wpa_supplicant框架 /442 7.7.3 wifi hal实现 /444 7.8 android蓝牙本地实现 /447 7.8.1 android蓝牙构架 /447 7.8.2 bluez结构体系 /448 7.8.3 bluez适配层 /452 7.9 android 定位实现 /453 7.9.1 定位系统构架 /453 7.9.2 gps hal实现 /454 7.10 android power hal实现 /459 7.11 android vibrator hal实现 /461 7.12 小结 /462 第8章 dalvik虚拟机的构架、原理与实现 /463 8.1 dalvik虚拟机概述 /464 8.1.1 什么是dalvik虚拟机 /464 8.1.2 dalvik虚拟机的功能 /464 8.1.3 dalvik虚拟机与ja虚拟机的区别 /465 8.2 dalvik构架与实现 /466 8.2.1 dalvik系统构架 /466 8.2.2 dx和dexdump工具 /468 8.2.3 .dex文件格式解析 /470 8.2.4 dalvik内部机制 /487 8.2.5 dalvik进程管理 /492 8.2.6 dalvik内存管理 /501 8.2.7 dalvik加载器 /509 8.2.8 dalvik解释器 /517 8.2.9 dalvik jit /519 8.3 jni的构架与实现 /523 8.3.1 jni构架 /523 8.3.2 jni实现 /524 8.4 小结 /526 第9章 android 核心库 /527 9.1 android核心库简介 /528 9.2 android系统api /529 9.2.1 android包 /529 9.2.2 android包 /529 9.2.3 apicheck机制 /529 9.3 小结 /532 后记 /533
设计师设计 Android UI 应该用多大分辨率进行设计?
1 在ASSOCIATING阶段由于丢包导致ASSOC REJECT
03-16 09:22:12.440 D/WifiMonitor( 924): Event [IFNAME=wlan0 CTRL-EVENT-DISCONNECTED bssid=08:cc:68:9e:ac:20 reason=3 locally_generated=1]
03-16 09:22:16.596 I/wpa_supplicant(23065): wlan0: CTRL-EVENT-ASSOC-REJECT bssid=0e:bd:51:c7:b6:33 status_code=1
2 在4WAY_HANDSHAKE阶段由于密码错误、丢帧或者弱信号丢包导致WRONG_KEY:
密码错误在4WAY_HANDSHAKE阶段中的2/4次握手会显示wrong key。
如果已经连接过则显示
01-01 23:19:01.778 I/wpa_supplicant(19043): wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=1 ssid="Onetouch Idol 3 (4.7)" auth_failures=1 duration=5eason=WRONG_KEY。
丢帧导致连接断开:
Line 127671:< 3>[86294.177961] wlan: [245:E :PE ] limHandleMissedBeaconInd: 2121: Sending EXIT_BMPS_IND to SME due to Missed beacon from FW
信号弱导致断开:
02-28 21:56:59.703 I/wpa_supplicant(31023): wlan0: CTRL-EVENT-DISCONNECTED bssid=c8:3a:35:2b:71:30 reason=0
02-28 21:56:59.713 E/WifiStateMachine( 821): NETWORK_DISCONNECTION_EVENT in connected state BSSID=c8:3a:35:2b:71:30 RSSI=-89 freq=2437 was debouncing=false reason=0 ajst=0
reason=0表示因为信号弱而断开。
3 4WAY_HANDSHAK成功但DHCP FAILURE
四步握手成功但获取IP地址失败
03-14 14:21:59.681 E/WifiStateMachine(28360): WifiStateMachine DHCP failure count=0
03-14 14:21:59.705 E/WifiConfigStore(28360): message=DHCP FAILURE
4 被AP踢出,这个原因需要sniffer log分析
reason=2,reason=7,reason=15代表被AP踢出,在kernel log中可以找到对应的deauth信息。
03-14 14:21:29.932 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-DISCONNECTED bssid=c4:14:3c:29:47:05 reason=7
< 3>[86553.353983] wlan: [28055:E :PE ] limProcessDeauthFrame: 144: Received Deauth frame for Addr: 44:a4:2d:52:bc:a5 (mlm state = eLIM_MLM_LINK_ESTABLISHED_STATE, sme state = 12 systemrole = 3) with reason code 7 from c4:14:3c:29:47:05
03-14 14:20:03.274 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-DISCONNECTED bssid=1c:1d:86:e9:e2:85 reason=15
<3>[86568.199309] wlan: [28055:E :PE ] limProcessDeauthFrame: 144: Received Deauth frame for Addr: 44:a4:2d:52:bc:a5 (mlm state = eLIM_MLM_LINK_ESTABLISHED_STATE, sme state = 12 systemrole = 3) with reason code 15 from 1c:1d:86:e9:e2:85
03-14 13:42:24.354 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-DISCONNECTED bssid=c4:14:3c:29:47:25 reason=2
< 3>[85195.665538] wlan: [28055:E :PE ] limProcessDeauthFrame: 144: Received Deauth frame for Addr: 44:a4:2d:52:bc:a5 (mlm state = eLIM_MLM_LINK_ESTABLISHED_STATE, sme state = 12 systemrole = 3) with reason code 2 from c4:14:3c:29:47:25
5 在信号相差5-10rssi的时候会发生roam,roam是在firmware层发生的,不会断开。
03-14 14:19:24.774 I/WifiHAL (28360): event received NL80211_CMD_ROAM, vendor_id = 0x0
03-14 14:19:24.781 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-CONNECTED - Connection to c4:14:3c:29:47:25 completed [id=0 id_str=]
03-14 14:19:30.298 I/WifiHAL (28360): event received NL80211_CMD_ROAM, vendor_id = 0x0
03-14 14:19:30.316 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-CONNECTED - Connection to c4:14:3c:29:47:05 completed [id=0 id_str=]
03-14 14:19:48.681 I/WifiHAL (28360): event received NL80211_CMD_ROAM, vendor_id = 0x0
03-14 14:20:00.162 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-CONNECTED - Connection to 1c:1d:86:e9:e2:85 completed [id=0 id_str=]
6 在打开auoto join的情况下,也会发生roam,也不会断开
03-14 12:09:32.171 E/WifiStateMachine(28360): WifiStateMachine shouldSwitchNetwork txSuccessRate=0.00 rxSuccessRate=0.00 delta 1000 -> 1000
03-14 12:09:34.505 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-CONNECTED - Connection to 6c:99:89:b0:01:85 completed [id=0 id_str=]
03-14 12:09:55.132 I/wpa_supplicant(28064): wlan0: CTRL-EVENT-DISCONNECTED bssid=6c:99:89:b0:01:85 reason=0
03-14 13:10:51.805 E/WifiStateMachine(28360): WifiStateMachine shouldSwitchNetwork txSuccessRate=0.00 rxSuccessRate=0.00 delta 1000 -> 1000
如何实现多个APK间共享一个进程
1. 程序启动图标:
ldpi (120 dpi)
小屏
mdpi (160 dpi)
中屏
hdpi (240 dpi)
大屏
xhdpi (320 dpi)
特大屏
36 x 36 px
48 x 48 px
72 x 72 px
96 x 96 px
2.底部菜单图标
1. 大屏:
1. 完整(红色): 72 x 72 px
2. 图标(蓝色): 48 x 48 px
3. 图标外边框(粉色): 44 x 44 px
1. 中屏:
1. 完整: 48 x 48 px
2. 图标: 32 x 32 px
3. 图标外边框: 30 x 30 px
1. 小屏:
1. 完整: 36 x 36 px
2. 图标: 24 x 24 px
3. 图标外边框: 22 x 22 px
3. 弹出对话框顶部图标
Low density screen (ldpi)
小屏
Medium density screen (mdpi)
中屏
High density screen (hdpi)
大屏
24 x 24 px
32 x 32 px
48 x 48 px
4. 长列表内部列表项图标
Low density screen (ldpi)
小屏
Medium density screen (mdpi)
中屏
High density screen (hdpi)
大屏
24 x 24 px
32 x 32 px
48 x 48 px
5. 底部或顶部tab标签图标
1. 大屏 (hdpi) screens:
1. 完整(红色): 48 x 48 px
2. 图标(蓝色): 42 x 42 px
1. 中屏 (mdpi) screens:
1. 完整: 32 x 32 px
2. 图标: 28 x 28 px
1. 小屏(ldpi) screens:
1. 完整: 24 x 24 px
2. 图标: 22 x 22 px
6. 底部状态栏图标
ldpi (120 dpi)
小屏
mdpi (160 dpi)
中屏
hdpi (240 dpi)
大屏
xhdpi (320 dpi)
特大屏
18 x 18 px
24 x 24 px
36 x 36 px
48 x 48 px
android屏幕适配有哪些方法
默认情况下,同一个应用程序中的所有组件运行在同一个进程中,而且绝大多数的应用程序也都是这样的。但是,如果我们想要控制让某个特定的组件属于某个进程,我们可以在manifest文件中进行配置。
在每种组件元素(activity、service、receiver、provider)的manifest条目中,都支持一个“android:process”的属性,通过这个属性,我们可以指定某个组件运行的进程。我们可以通过设置这个属性,让每个组件运行在它自己的进程中,也可以只让某些组件共享一个进程。我们要可以通过设置“android:process”属性,让不同应用程序中的组件运行在相同的进程中,这些应用程序共享相同的Linux用户ID,拥有相同的证书。
<lication>元素也有一个“android:process”属性,可以设置一个应用于全部组件的默认值。
当可用内存数量低,而一些与用户即时交互的进程又需要内存时,Android随时可能会终止某个进程。运行在被终止的进程中的组件会因此被销毁,但是,当再次需要这些组件工作时,就会再启动一个进程。
在决定要终止哪个进程时,Android系统会权衡它们对于用户的重要性。例如,相较于运行可见activities的进程,终止一个运行不可见activities的进程会更加合理。是否终止一个进程,依赖于运行在这个进程中的组件的状态。
如果不能将两个activity放入同一个lication中的话,可以通过在各自的manifest中设置以下属性,让这两个activity强制运行在同一个进程中,从而可以充分利用进程内共享的,减少内存占用:
Ja代码:
1.(1)设置相同的User Id:
2.<manifest android:sharedUserId="aaa.bbb"
3.(2)被调用的activity设置以下属性:
4.<activity android:multiprocess="true"
5.或者
6.<activity android:process="com.cienet.test"
对于3D OpenGL程序,修改以上属性后,被调用的activity的内存占用会明显减少,比如:30MB -> 2MB。
可以做如下测试如何共享一个进程
Ja代码:
1.加入android:sharedUserId="aaa.bbb"没有
2.android:process="com.cienet.test"
3.07-12 15:42:34.781: ERROR/Dean(7615): Binder.getCallingPid()7615
4.07-12 15:42:34.785: ERROR/Dean(7615): runningprocessinfo.pid:7615runningprocessinfo.processNamecom.cienet.testa
5.07-12 15:42:34.785: ERROR/Dean(7615): pkgname:7615:com.cienet.testa
6.
7.
8.07-12 15:42:24.722: ERROR/Dean(7602): Binder.getCallingPid()7602
9.07-12 15:42:24.726: ERROR/Dean(7602): runningprocessinfo.pid:7602runningprocessinfo.processNamecom.cienet.testb
10.07-12 15:42:24.726: ERROR/Dean(7602): pkgname:7602:com.cienet.testb
11.
12.加入android:process="com.cienet.test"到B
13.
14.07-12 15:46:41.933: ERROR/Dean(7738): Binder.getCallingPid()7738
15.07-12 15:46:41.937: ERROR/Dean(7738): runningprocessinfo.pid:7738runningprocessinfo.processNamecom.cienet.test
16.07-12 15:46:41.937: ERROR/Dean(7738): pkgname:7738:com.cienet.testb
17.
18.07-12 15:47:13.246: ERROR/Dean(7761): Binder.getCallingPid()7761
19.07-12 15:47:13.246: ERROR/Dean(7761): runningprocessinfo.pid:7761runningprocessinfo.processNamecom.cienet.testa
20.07-12 15:47:13.250: ERROR/Dean(7761): pkgname:7761:com.cienet.testa
21.
22.同时加入android:process="com.cienet.test"到A
23.
24.07-12 15:50:24.988: ERROR/Dean(7878): getApplicationInfo:publicSourceDir/data//com.cienet.testa-1.apk
25.07-12 15:50:24.988: ERROR/Dean(7878): getApplicationInfo:descriptionRes0
26.07-12 15:50:24.988: ERROR/Dean(7878): Binder.getCallingPid()7878
27.07-12 15:50:24.992: ERROR/Dean(7878): runningprocessinfo.pid:7878runningprocessinfo.processNamecom.cienet.test
28.07-12 15:50:24.992: ERROR/Dean(7878): pkgname:7878:com.cienet.testa
29.
30.
31.07-12 15:50:46.964: ERROR/Dean(7878): getApplicationInfo:publicSourceDir/data//com.cienet.testb-1.apk
32.07-12 15:50:46.964: ERROR/Dean(7878): getApplicationInfo:descriptionRes0
33.07-12 15:50:46.964: ERROR/Dean(7878): Binder.getCallingPid()7878
34.07-12 15:50:46.968: ERROR/Dean(7878): runningprocessinfo.pid:7878runningprocessinfo.processNamecom.cienet.test
35.07-12 15:50:46.2: ERROR/Dean(7878): pkgname:7878:com.cienet.testa
36.
37.
38.去掉android:sharedUserId="aaa.bbb"
39.07-12 15:52:29.574: ERROR/Dean(7967): getApplicationInfo:publicSourceDir/data//com.cienet.testb-2.apk
40.07-12 15:52:29.578: ERROR/Dean(7967): getApplicationInfo:descriptionRes0
41.07-12 15:52:29.578: ERROR/Dean(7967): Binder.getCallingPid()7967
42.07-12 15:52:29.578: ERROR/Dean(7967): runningprocessinfo.pid:7967runningprocessinfo.processNamecom.cienet.test
43.07-12 15:52:29.578: ERROR/Dean(7967): pkgname:7967:com.cienet.testb
44.
45.
46.07-12 15:53:06.730: ERROR/Dean(7990): getApplicationInfo:publicSourceDir/data//com.cienet.testa-2.apk
47.07-12 15:53:06.730: ERROR/Dean(7990): getApplicationInfo:descriptionRes0
48.07-12 15:53:06.730: ERROR/Dean(7990): Binder.getCallingPid()7990
49.07-12 15:53:06.734: ERROR/Dean(7990): runningprocessinfo.pid:7990runningprocessinfo.processNamecom.cienet.test
50.07-12 15:53:06.734: ERROR/Dean(7990): pkgname:7990:com.cienet.testa
如上证明那个APK共享进程要两个条件(1)设置相同的User Id:
(2)被调用的activity设置以下属性:
<activity android:multiprocess="true"
或者
<activity android:process="com.cienet.test"
Android手机内存卡中的文件夹分别代表什么软件?
Android 文件夹有其中两种方式支持屏幕适配:
一、方法:
1.XXX XXX-ldpi XXX-mdpi XXX-hdpi XXX-xhdpi XXX-xxhdpi 这种方式 (推荐使用)
2.XXX XXX-123x456 后面是具体值(不推荐使用这种方式!)
当我们做适配处理时通常会在以上一堆文件夹中定义 xxx.xml 例如 定义一个 : <dimen name="list_item_height">100dip</dimen>
二、适配举例:
Android的匹配机制和手机系统有关:
规则一:Android4.0 以上的手机,先寻找和设备吻合的文件夹里的相应文件里的,如果没有找到会继续匹配它下面(比它分辨率或密度小)的一些文件夹,最后去XXX 默认文件夹中匹配。
eg1: 小米2s (4.1 1280x720) 有文件夹 XXX XXX-320x240 XXX-800x480 XXX-1280x719 XXX-1280x720 XXX-1280x721 XXX-xhdpi
1.匹配XXX-xhdpi
2.匹配XXX-1280x720
3.匹配XXX-1280x719
4.匹配XXX-480x800
5.匹配XXX-320x240
6.匹配XXX
eg2:HTC ONE (4.2 1920×1080)
规则二:Android4.0 以下的手机,先寻找和设备吻合的文件夹里的相应文件里的,如果没有找到会继续匹配它下面(比它密度小)的一些文件夹。
eg:三星m250L(同三星9100 2.3.7 800x480) 有文件夹 XXX XXX-320x240 XXX-800x479 XXX-480x800 XXX-ldpi XXX-mdpi XXX-hdpi
1.匹配XXX-hdpi
2.匹配XXX-mdpi
3.匹配XXX-480x800
4.匹配XXX
5.匹配XXX-ldpi
6.程序退出
eg3:华为U8860(2.3.6 854x480)
所以在项目中<dimen name="list_item_height">50dip</dimen> 分别定义在
values : <dimen name="list_item_height">50dip</dimen> 和
values-320x240 : <dimen name="list_item_height">42dip</dimen> 中.
小米2s 会取 values-320x240 中42dip 的值。
SD卡中的文件夹,基本上都是系统软件和第三方软件的数据存储的地方。一般看文件夹名称就能看出是属于哪个软件的。比如tencent,就是腾讯的英文名,自然就是QQ和微信的数据所在地。微信传送的什么的,都在这里。
另外,常见的文件夹名称及其作用如下:
一、系统数据类——系统文件存储相关文件夹
1、.android_secure:官方2sd的产物,存储了相关的软件使用认证验证,删除之后SD卡中的软件将无法使用。
2、Android:存放重要的程序数据,比如google:map的地图缓存,误删掉后地图还需重新下载。
3、backups:包含重要的备份文件,比如联系人导出到SD卡会导入到此文件夹。
4、bugtogo:系统出现问题的时候会形成一些报告文件,存放在此文件夹。
5、data:缓存数据文件夹,与Android类似。例如,“截图助手”截图保存在datacom.edwardkim.android.screenshotitfullscreenshots里。
6、LOST.DIR:卡上丢失或出错的文件会移动到这里,此目录删了会自动生成。
7、SystemAppBackup:SystemApp remove(深度卸载)备份系统文件后,备份文件保存的目录。
8、bugreports:升级系统或刷机,系统和程序发生兼容错误报告列表(包括内存使用全部内容)将保存在这个文件,重起机器可以删除。
9、.keepsafe:隐藏类的软件、加密保存文件地址存放于此。
10、.thumbs:浏览或使用某一软件,以及使用某一文件夹后用于记录次数和内容的文件,随机产生,需要定期不断清除,长时间不清理会大量占用储存卡的有效空间。
11、openfeint:打开联接网络后的一个启动程序,它广泛植入移动类平台发布的软件或游戏,是更新下载或评论反馈信息的记录地址,可删除。
12、com:播放类软件在收看播放节目生成的文件将存放于此,可以对制作方反映回馈信息,可以删除。
13、Download(download):大写字母的是网络联接下载文件目录,小写字母的是手机自身(蓝牙,近场等)存放下载传输文件,不要误删。
二、系统工具类——系统自带工具相关文件夹
1、albumart:音乐专辑封面的缓存文件夹。
2、albums:相册缩略图的缓存文件夹。
3、cmp:音乐的缓存文件夹。
4、Playlists:播放列表的缓存文件夹。
5、DCIM:相机随机缓存文件夹,记录功能设置的参数,需要及时清理。一些第三方相机软件拍出的相片也会保存在这里,比如360或晕影相机等。
6、***:***数据的缓存目录。
7、My documents:手机启用各种程序任务记录的文档,需要定期清除,长时间不清理会占用SD卡较大内存。
8、.nomedia:手机中隐藏的音频、文件夹都会在这里显示,可以自设在相关文件夹中。
9、media:使用电话通话录音软件或在线浏览等媒体产生的音频文件记录存档将保存在此。
10、.medieval_software:启用蓝牙传输软件时,记录任务保存文件的目录。
11、extracted:解压缩软件默认的解压目录。
三、第三方应用类
1、.mobo:Moboplayer的缓存文件。
2、.QQ:QQ的缓存文件,需要定期清除。
3、.quickoffice:quickoffice的缓存文件。
4、.switchpro:switchprowidget(多键开关应用)的缓存文件。
5、.ucdlres:UC迅雷的缓存文件。
6、baidu:掌上百度、百度输入法之类程序的缓存文件夹。
7、etouch:易行的缓存文件夹。
8、documents:Documents To Go的相关文件夹。
9、gameloft:gameloft游戏数据包存放的文件夹。
10、handcent:handcent(超级短信)数据文件夹。
11、handyCurrency:货币汇率相关的文件夹,装了handycalc(科学计算器)之后才会有。
12、ireader:ireader的缓存文件夹。
13、KingReader:开卷有益的缓存文件夹:下载的文件和应用都在这儿:删除时留意看清
14、LazyList:Applanet的缓存目录,慎重使用。
15、moji:墨迹天气的缓存目录。
16、MusicFolders:poweramp产生的缓存文件夹。
17、openfeint:openfeint的缓存文件夹。
18、Picstore:浏览软件建立的一个目录。
19、renren:网客户端的缓存文件夹。
20、screenshot:截屏保存的目录。
21、ShootMe:shootme截屏后文件保存的目录。
22、SmartpixGames:Smartpix Games出品游戏的缓存文件夹,比如Jewellust。
23、sogou:搜狗拼音输入法的随机缓存文件夹,可以删除。
24、SpeedSoftware:RE文件管理器的缓存文件夹。
25、TalkingFriends:talking tom(会说话的tom猫)录制的文件所保存的目录。
26、Tencent:腾讯软件的缓存目录,比如QQ。(与上面的.QQ文件夹并不相同)
27、TitaniumBackup:钛备份备份的程序所保存的目录。
28、TunnyBrowser:感觉是海豚浏览器的缓存目录,但为什么叫这个名字?金枪鱼浏览器...。.
29、UCDLFiles:UC迅雷下载文件的保存目录。
30、UCDownloads:UC浏览器下载文件缓存的保存目录。
31、VIE:Vignette(晕影相机)的缓存目录。
32、yd_historys:有道词典搜索历史的缓存目录
33、yd_speech:有道词典单词发音的缓存目录。
34、youmicache:删掉后还会自动生成,悠米广告的缓存目录,广告程序内嵌在其程序中。
35、Glu:Glu系列游戏的资料包存放地,如3D猎鹿人,勇猛二兄弟等。
36、apadqq-images:QQ for pad的缓存目录。
37、DunDef:地牢守护者的数据包。
38、KuwoMusic:酷我音乐的相关文件夹。
39、MxBrowser:遨游的缓存目录。
40、Camera360:相机camera360的随机缓存目录,可以定期清除。
41、TTPod:天天动听的缓存目录。
42、downloaded:刷了MIUI,升级后的ZIP刷机包,保存在downloaded_rom里。
43、.estrongs:当你使用了ES文件管理器解压文件,会有这个缓存记录。它反映使用进程,可以删除。
44、silentR:用了后台录音软件,自生的音频文件夹,子文件夹phoneCalls,定期管理清除
45、3D-compass:这是使用实景指南针软件,生成的景象(图像和数字比较详细)文件夹,可以清除。
46、PDF:可移植文档格式,Pdf阅读器存储文件夹。
47、Zidan youdao:是字典的词库文件储存,删除了要重新下载词库。
48、Callrecords:用第三方强制双向录音软件(手机未root),音频文件保存。
49、VPlayer Pro:是MOBO等播放器使用后的记录定期删除。
50、BeWeather(Videos):是气象类软件(如黑莓天气.。.等)附加下载音频或动画图标的储存地址,删除了会无图无声显示。
51、thumbnails:用第三方播放器观看手持移动类媒体时,存放点击暂停、随机截图以及文件储存时产生的内容。
52、iQuran(meta2):可兰经浏览文本和音频的储存文件。
53、Autodesk:手机系统自带存储器命令生成文件夹:储存图像或编写文稿,可以查看、备份或者删除。
54、PixlrOMatic:后期特效处理软件Pixlo,储存文件夹,打开可以预览看效果。
55、mapbar:图吧导航地图存放文件,有必须主文件和不同地区具体地图,主文件删掉要重下!
56、antTTS:是使用了高德导航选择语音种类导航、语种的下载地址,删掉了语音提示会丢失。
57、kingsoft:金山词霸专用文件夹下载储存词库、更新拓展文汇(官方发布修正补充)。
58、NightVisionCamera:夜间拍照相机相片存放的地址。
59、DSA:电子狗专用夹,收录各地区道路探头监控位置信息,会定期更新。已测试配合高德、凯立德提前预警,效果不错。
60、apexlauncher:尖端桌面启动器文件夹,位置在andriod/data/,放置桌面设置备份bak文件。