android22硬件要求_安卓x86硬件要求
1.vivoy参数vivoy配置怎样
2.android到底是什么意思?
3.安卓系统目前最高的版本是多少?
4.华为mate40参数配置详细
5.android系统有哪些开发者小技巧
6.安卓手机CPU占用率总是很高怎么解决
Android 10(29)适配方案简要说明
1、根据Google官方文档说明,Android10引入了大量变更
官方文档: s://developer.android.google.cn/about/versions/10/highlights?hl=zh_cn
1.1、Android 10 中的隐私权变更
1.1.1重大隐私权变更
分区存储
针对外部存储的过滤视图,可提供对特定于应用的文件和媒体集合的访问权限 访问和共享外部存储中的文件的应用 使用特定于应用的目录和媒体集合目录
增强了用户对位置权限的控制力
仅限前台权限,可让用户更好地控制应用对设备位置信息的访问权限 在后台时请求访问用户位置信息的应用 确保在没有后台位置信息更新的情况下优雅降级
使用 Android 10 中引入的权限在后台获取位置信息
系统执行后台 Activity
针对从后台启动 Activity 实施了限制 不需要用户互动就启动 Activity 的应用 使用通知触发的 Activity
不可重置的硬件标识符
针对访问设备序列号和 IMEI 实施了限制 访问设备序列号或 IMEI 的应用 使用用户可以重置的标识符
无线扫描权限
访问某些 WLAN、WLAN 感知和蓝牙扫描方法需要获得精确位置权限 使用 WLAN API 和蓝牙 API 的应用 针对相关使用场景请求?ACCESS_FINE_LOCATION?权限
1.1.2更多隐私权变更
标识符和数据: 针对硬件标识符(如 IMEI、序列号、MAC 和类似数据)实施了新限制。
?移除了联系人亲密程度信息
?随机分配 MAC 地址
?对 /proc/net 文件系统的访问权限实施了限制
?对不可重置的设备标识符实施了限制
?限制了对剪贴板数据的访问权限
?保护 USB 设备序列号
摄像头和连接性: 针对摄像头元数据和连接 API 提供了更强大的保护措施。 ?对访问摄像头详情和元数据的权限实施了限制
?对启用和停用 WLAN 实施了限制
?对直接访问已配置的 WLAN 网络实施了限制
?一些电话 API、蓝牙 API 和 WLAN API 需要精确位置权限
权限 : 针对权限模型和要求的一些变更。
?限制对屏幕内容的访问
?面向用户的权限检查(针对旧版应用)
?身体活动识别
?从界面中移除了权限组
1.2影响应用的行为变更
文档: s://developer.android.google.cn/about/versions/10/behior-changes-all?hl=zh_cn
限制非 SDK 接口: 为了帮助确保应用的稳定性和兼容性,Android 平台开始限制应用在 Android 9(API 级别 28)中使用非 SDK 接口。Android 10 包含更新后的受限制非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。我们的目标是在限制使用非 SDK 接口之前确保有可用的公开替代方案。
手势导航: 从 Android 10 开始,用户可以在设备中启用手势导航。用户启用后,手势导航会影响设备上的所有应用,无论应用是否以 API 级别 29 为目标平台。例如,如果用户从屏幕边缘向内滑动,系统会将该手势解读为“返回”导航,除非应用针对屏幕的相应部分明确替换该手势。
NDK 方面的变更
?共享对象不得包含文本重定位
?Bionic 库和动态链接器路径变更
?系统二进制文件/库会映射到只执行内存
安全方面的变更
TLS 1.3 默认处于启用状态
?TLS 不信任使用 SHA-1 签名的证书
?KeyChain 行为变更和改进
?其他 TLS 和加密更改
WLAN 直连广播
在 Android 10 中,以下与 WLAN 直连相关的广播不具有粘性:
WIFI_P2P_CONNECTION_CHANGED_ACTION
WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
如果的应用依赖于在注册时接收这些广播(因为其之前一直具有粘性),请在初始化时使用适当的 get() 方法获取信息。
WLAN 感知功能 ?
Android 10 扩大了支持范围,现在可以使用 WLAN 感知数据路径轻松创建 TCP/UDP 套接字。要创建连接到 ServerSocket 的 TCP/UDP 套接字,客户端设备需要知道服务器的 IPv6 地址和端口。这在之前需要通过频外方式进行通信(例如使用 BT 或 WLAN 感知第 2 层消息传递),或者使用其他协议(例如 mDNS)通过频内方式发现。而借助 Android 10,可以将此类消息作为网络设置的一部分进行传递。
Go 设备上的 SYSTEM_ALERT_WINDOW
在 Android 10(Go 版本)设备上运行的应用无法获得 SYSTEM_ALERT_WINDOW 权限。这是因为绘制叠加层窗口会使用过多的内存,这对低内存 Android 设备的性能十分有害。
如果在搭载 Android 9 或更低版本的 Go 版设备上运行的应用获得了 SYSTEM_ALERT_WINDOW 权限,则即使设备升级到 Android 10,也会保留此权限。不过,尚不具有此权限的应用在设备升级后便无法获得此权限了。
如果 Go 设备上的应用发送具有 ACTION_MANE_OVERLAY_PERMISSION 操作的 intent,则系统会自动拒绝此请求,并将用户转到设置屏幕,上面会显示不允许授予此权限,原因是它会减慢设备的运行速度。如果 Go 设备上的应用调用 Settings.canDrawOverlays(),则此方法始终返回 false。同样,这些限制不适用于在设备升级到 Android 10 之前便已收到 SYSTEM_ALERT_WINDOW 权限的应用。
关于以旧版 Android 系统为目标平台的应用的警告
在搭载 Android 10 或更高版本的设备上,如果用户首次运行以 Android 5.1(API 级别 22)或更低版本为目标平台的应用,则会看到警告。如果此应用要求用户授予权限,则系统会先向用户提供调整应用权限的机会,然后才会允许此应用首次运行。
由于 Google Play 的目标 API 方面的要求,用户只有在运行最近未更新的应用时才会看到这些警告。对于通过其他商店分发的应用,我们也将于 2019 年引入类似的目标 API 方面的要求。如需详细了解这些要求,请参阅在 2019 年扩展目标 API 级别方面的要求。
移除了 SHA-2 CBC 加密套件
以下 SHA-2 CBC 加密套件已从平台中移除:
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
这些加密套件不如使用 GCM 的类似加密套件安全,并且大多数服务器要么同时支持这些加密套件的 GCM 变体和 CBC 变体,要么二者均不支持。
应用使用情况的变更
?UsageStats 应用使用情况方面的改进 - 当在分屏或画中画模式下使用应用时,Android 10 现在能够使用 UsageStats 准确地跟踪应用使用情况。此外,Android 10 可以正确地跟踪免安装应用的使用情况。
?按应用开启灰度模式 - Android 10 可针对各个应用设置灰度显示模式。
?按应用开启干扰模式 - Android 10 可以选择性地将应用设置为“干扰模式”,此时系统会禁止显示其通知,并且不会将其显示为推荐的应用。
?暂停和播放 - 在 Android 10 中,暂停的应用无法播放音频。
HTTPS 连接变更
如果在 Android 10 上运行的应用将 null 传递给 setSSLSocketFactory(),则会出现 IllegalArgumentException。在以前的版本中,将 null 传递给 setSSLSocketFactory() 与传入当前的默认 SSL 套接字工厂效果相同。
android.preference 库已弃用
从 Android 10 开始,将弃用 android.preference 库。开发者应该改为使用 AndroidX preference 库,这是 Android Jetpack 的一部分。如需获取其他有助于迁移和开发的,请查看经过更新的设置指南以及我们的公开示例应用和参考文档。
ZIP 文件实用程序库变更
Android 10 对 ja.util.zip 软件包(用于处理 ZIP 文件)中的类进行了以下变更。这些变更会让库的行为在 Android 和使用 ja.util.zip 的其他平台之间更加一致。
?Inflater
在以前的版本中,如果在调用 end() 之后调用 Inflater 类中的某些方法,这些方法会抛出 IllegalStateException。在 Android 10 中,这些方法会改为抛出 NullPointerException。
?ZipFile
在 Android 10 及更高版本中,如果所提供的 ZIP 文件不包含任何文件,则 ZipFile 的构造函数(用的参数类型为 File、int 和 Charset)不会抛出 ZipException。
?ZipOutputStream
在 Android 10 及更高版本中,如果 ZipOutputStream 中的 finish() 方法尝试为不包含任何文件的 ZIP 文件写入输出流,则此方法不会抛出 ZipException。
摄像头变更
很多使用摄像头的应用都会定如果设备用纵向配置,则物理设备也会处于纵向,正如摄像头方向中所述。在过去可以做出这样的定,但随着可用的设备类型(例如可折叠设备)的扩展,这一情况发生了变化。针对这些设备做出这样的定可能导致相机取景器的显示产生错误的旋转和/或缩放。
以 API 级别 24 或更高级别为目标平台的应用应该明确设置 android:resizeableActivity,并提供必要的功能来处理多窗口操作。
电池用量跟踪
从 Android 10 开始,只要在发生重大充电之后拔下设备电源插头,SystemHealthManager 就会重置其电池用量统计信息。一般来说,重大充电指的是设备电池已充满,或者设备电量从几乎耗尽变为即将充满。
在 Android 10 之前,无论何时拔下设备电源插头,无论电池电量有多微小的变化,电池用量统计信息都会重置。
Android Beam 已弃用
在 Android 10 中,我们正式弃用了 Android Beam,这是一项旧版功能,可通过近距离无线通信 (NFC) 在多个设备之间启动数据共享。我们还弃用了一些相关的 NFC API。Android Beam 仍可供需要的设备制造商合作伙伴使用,但它已不再处于积极的开发阶段。不过,Android 仍将继续支持其他的 NFC 功能和 API,并且从标签和付款中读取数据等使用场景仍将继续按预期执行。
vivoy参数vivoy配置怎样
Android手机软件开发能做什么?求解答
Android手机系统的一个很大的优势在于其开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。 Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。从下面列出的开放手机联盟成员可以看出其强大的实力: 开放手机联盟成员: 一、手机制造商: 1、 诺基亚 2、 三星 3、 摩托罗拉 4、 HTC 5、 索尼爱立信 6、 RIM 7、 LG 8、 BlackBerry 9、 苹果 10、 中兴 二、半导体公司: 半导体: 1、 中芯国际 2、 台积电 3、 大连英特尔 4、 苏州和舰 5、 宏力 6、 华虹 7、 华力 8、 成都德州仪器 9、 厦门集顺 10、宁波比亚迪 三、:软件公司 1、 华为技术有限公司 2、 中兴通讯股份有限公司 3、 海尔集团公司 4、 神州数码(中国)有限公司 5、 浙大网新科技股份有限公司 6、 熊猫电子集团有限公司 7、 北京北大方正集团公司 8、 同方股份有限公司 9、 上海贝尔阿尔卡特股份有限公司 10、 浪潮集团有限公司 Android同时也获得了大量开发者的支持。据Google称,在其推出后的两个月内,程序员下载这个软件开发平台的次数已经高达250000多次。尽管在如 此庞大的下载数量中只有一小部分开发者真正开始编写实际的应用程序,但我们却由此可以看出惊人的开发商兴趣。相比之下,在Symbian操作系统推出一年 后,其操作指南的下载次数只有70000次左右。 HTC CEO周永明(Peter Chou)称,基于Google Android平台的T-MobileG1手机有望在今年底达到100万部的出货量,而此前预计的数量只有60万部。看起来“Google手机”尽管宣传比较低调,但实际卖得还不错,前景也被人看好。 Android在中国,你必须要了解的 作为开放手机联盟的初始成员,中国移动早在去年就开始招兵买马,开发自己的Android手机。另外,各山寨厂商也在大力进行Android的移植工作,更有所谓的首款中文Android手机琦基i6已经曝光。 广州北大青鸟广力校区院校地址: 广州市越秀区童心路西胜街42号5号楼(广州青少年科技馆、广州科学技术协会内)。
怎么学习安卓Android手机软件开发Android应用呈现给用户最多的是界面,所以界面是否美观是用户会不会选择去用的一个重要因素。对于工程师来说,如何提高自己的审美,进而把自己对美的理解融入到应用当中是很重要的。如果你对安卓可发有兴趣的话,可以来武汉四 维梦-工场了解学习
没有基础能学android手机软件开发吗?没基础得先入门,编程这东西速成不行,得从ja小程序做起,包括安装jdk,jre这些,零基础可以学习Ja基础开始,逐步向开发项目进阶。最快的方法还是去参加android开发培训,可以零基础学,培训四个月的时间就可以了。
谁告诉我下,android手机软件开发,如何啊?华夏博大3G学院,都反映挺好的,那里的老师有这方面的开发经验。
具备着线上的真实应用,就业了之后再付 款。
怎么招聘一批android手机软件开发的人呢?个人理解是 对于需要做自己的android客户端的企业来说 没有必要非要要求这个客户端一定要实现盈利~ 比如金蝶随手记 它更大的作用就是提高品牌知名度和培养用户习惯罢.
就好象adobe 为了培养用户习惯和品牌知名度 故意在反盗版上面做得不是那么好.
学android的手机软件开发 怎么样有前途,自学看这个:mars-droid./
我一直在看,有不懂得可以在论坛提问
手机软件开发做功能需求时要注意什么?天瑞地安的手机软件开发怎么样?一般是注意开发的水平能力怎么样, 有没有成功案例, 开发的后期发现BUG怎么处理, 版本怎么升级等等, 手机APP开发, 需要可以@我
金华有android手机软件开发培训的地方吗?"给大家讲一个真实的故事吧,在经历一场意外后,我错过了应届生就业的最佳时期。因为一直期望能从事嵌入式行业,而该行的起点要求比较高,公司一般都不招应届生,只取有工作经验的职业人士或是有培训经验的基础技术人员。所以在术后休养一年身体有所好转的情况下,我选择了动力节点或王勇ja,这四个月的学习期间,我不仅巩固了软件开发的语言基础部分,更弥补了大学课堂应试教育的不足之处。因为在培训期间,虽然多半是教学,但是,一边听课一边敲代码的学习模式,不仅加深了课堂理解而且强化了动手动脑的能力。在此,向动力节点或王勇ja所有给过我帮助的老师和同学致以真切的谢意!Y
"
android手机软件开发中 怎么连接Mysql数据库一、首先要加载JDBC驱动包。
步骤:右击项目找到build path->configure build path->libraries——>add External JARs添加驱动包
二、写测试类:TestCon.ja
(在此之前,首先
1.在自己的电脑上Mysql下确定账户是"root",密码是"123456";
2.进入账户,创建数据库cui;
3.在数据库cui下面,创建表test1 包含_id(int 类型自动增加) username(String 类型)、password(String 类型);
4.在表中插入数据,以便显示
)
1 package .test.an;
2
3 import ja.sql.Connection;
4 import ja.sql.DriverManager;
5 import ja.sql.PreparedStatement;
6 import ja.sql.ResultSet;
7 import ja.sql.SQLException;
8
9
10 public class TestCon1{
11 public static void main(String[] args)
12 {
13 Connection con = null;
14 String sql;
15 PreparedStatement pre;
16 ResultSet rs;
17
18 try {
19 String driver=".mysql.jdbc.Driver";
20 Class.forName(driver);
21
22 String url="jdbc:mysql:localhost:3306/cuiuseUnicode=true&characterEncoding=latin1";utf-8也行
23 con = DriverManager.getConnection(url, "root", "123456");
24
25 sql = "select _id,username,password from test1" ;
26 pre = con.prepareStatement(sql);
27
28 rs = pre.executeQuery();
29 while(rs.next()){
30 int id = rs.getInt(1);
31 String username = rs.getString(2);
32 String password = rs.getString(3);
33
34 System.out.println("id="+id+";username="+username+";password="+password);
35 }
36 con.close();
37 } catch (SQLException e) {
38 e.printStackTrace();
39 } catch (ClassNotFoundException e) {
40 e.printStackTrace();
41 }
42
43 }
44
45 }
运行结果:
id=1;username=c;password=123456
id=2;username=xxx;password=654321
id=3;username=ddd;password=123456
id=4;username=ddf÷;password=yyt
id=5;username=cuixiaodong;password=cxd
id=6;username=vv;password=cxd
手机软件开发难学吗手机软件开发,技术含量很高。 只有接受好的教育,有好的学习态度才会不难
android到底是什么意思?
1、屏幕类型:全面屏(19:9水滴屏)
2、出厂系统内核:Android8.1
3、操作系统:FuntouchOs4.5
4、CPU型号:联发科HelioP60(MT6771)手机性能排行>
5、机身颜色:星夜黑,极光蓝,梦幻粉查看外观>
6、触摸屏类型:电容屏,多点触控
7、主屏尺寸:6.3英寸需双手打字更多6.3英寸手机>
8、主屏材质:IPS>
9、主屏分辨率:2280x1080像素1080P(击败%手机)
10、屏幕像素密度:403ppi
11、屏幕技术:Fullin-cell
12、窄边框:1.75mm
13、屏幕占比:90.3%全面屏(19:9水滴屏)(击败%手机)
14、其他屏幕参数:全面屏(19:9水滴屏全面屏),屏幕色彩:1600万色,对比度:1500:1typ,1200:1min,色彩饱和度:82%typ,屏幕亮度:TYP:480
15、窄边框:左右1.75mm,上边2.35mm,下边5.11mm
16、CPU频率:2.0GHz>
17、核心数:八核>
18、GPU型号:ARMMali-G72MP3(700MHz)
19、RAM容量:4GB>游戏运行一般
20、ROM容量:128GB>2.6万张照片1.1万首歌曲
21、存储卡:MicroSD卡>
22、扩展容量:256GB
23、电池类型:不可拆卸式电池>
24、电池容量:3315mAh(30分钟充电暂无%)大电池大电池手机>
25、续航时间:理论通话时间:GSM理论通话时间为2400分钟
26、理论待机时间:580小时
27、其他硬件参数:AI人工智能芯片,CorePilot4.0多任务运算,NeuroPilot深度学习
28、4G网络:移动TD-LTE,联通TD-LTE,联通FDD-LTE,电信TD-LTE,电信FDD-LTE
29、3G网络:移动3G(TD-SCDMA),联通3G(WCDMA),电信3G(CDMA2000),联通2G/移动2G(GSM)>
30、摄像头总数:三摄像头(后双)>
31、后置摄像头:1600万像素+200万像素级像素像素手机>
32、前置摄像头;1600万像素>级像素高像素自拍手机>
33、闪光灯:LED补光灯>
34、光圈:后置f/2.0+f/2.4,前置f/2.0
35、广角:前置78°,后置79°
36、摄像头特色:主摄MOB工艺
37、拍摄:支持
安卓系统目前最高的版本是多少?
1.公开优势方面,Android平台首先是开放的,发达的平台允许任何移动终端厂商加入Android联盟。显著的开放性可以让它拥有更多的开发者,随着用户和应用的不断增加,一个全新的平台很快就会成熟。2.丰富的硬件这还是和Android平台的开放性有关。由于Android的开放性,很多厂商会推出各种不同功能和特点的产品。功能差异和特性不会影响数据同步甚至软件兼容性。3、便于开发Android平台为第三方开发者提供了非常广阔自由的环境,不会受到各种规章制度的阻碍。可想而知会诞生多少新颖独特的软件,但它也有两面性。4.谷歌应用互联网上的谷歌已经走过了10年的历史。从搜索巨头到互联网全面渗透,地图、邮件、搜索等谷歌服务已经成为用户与互联网之间的重要纽带,安卓平台手机将这些优秀的谷歌服务无缝结合。
华为mate40参数配置详细
安卓系统目前最高的版本是8.0,是谷歌推出的智能手机操作系统。
Android(['?ndr?id])是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导。 Android 系统最初由安迪·鲁宾(Andy Rubin)制作,最初主要支持手机。2005年8月17日被Google收购。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。随后,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。
目前安卓系统占有率最高为Android6.0。
android系统有哪些开发者小技巧
华为mate40的参数配置详细如下:
CPU型号:海思 麒麟 9000E;
CPU频率:3.13Ghz A77*1+2.54GHz A77*3+2.05GHz A55*4;
CPU核心数:八核;
GPU型号:Mali-G78(22核);
RAM容量:8GB;
RAM存储类型:LPDDR5;
ROM容量:128GB;
ROM存储类型:UFS 3.1;
出厂系统内核:Android 10;
操作系统:EMUI 11;
扬声器:立体声双扬声器;
其他硬件参数:NPU:大核NPU+微核NPU(神经网络处理单元);
屏幕尺寸:6.5英寸;
屏幕材质:OLED;
分辨率:2376x1080像素;
屏幕比例:19.8:9;
屏幕类型:全面屏(左上挖孔屏),曲面屏;
屏幕刷新率:90Hz;
触摸屏类型:电容屏,多点触控;
触控样率:240Hz;
屏幕色彩:1670万色,DCI-P3色域。
华为mate40的性能特点
HUAWEI Mate 40搭载EMUI 11(基于Android 10)系统,用动效引擎,整体动画过渡效果流畅自然,还支持AOD功能、灵动息屏显示等功能。
HUAWEI Mate 40内置4200毫安时电池,充电技术方面支持华为40瓦有线超级快充+40瓦无线超级快充+反向无线充电,充电转换效率达到98%,30分钟充进电量为70%。
安卓手机CPU占用率总是很高怎么解决
下面是开始Android编程的好方法:
找一些与你想做事情类似的代码
调整它,尝试让它做你像做的事情
经历问题
使用StackOverflow解决问题
对每个你像添加的特征重复上述过程。这种方法能够激励你,因为你在保持不断迭代,不经意中你学到了很多。然而,当你发布应用时你还要做一些更深入的事情。
从一些可正常工作的代码到一个可怕的应用程序是一个巨大的跳跃,相比iOS平台Android更是如此 。当在iOS上发布应用时只是在一个设备上跳跃?你的手机?对很多设备而言都很相似?同样大小的屏幕,都有很好的硬件,95%上运行相同版本的操作系统。在Android应用中你不会遇到这种情况。
你的程序必须能够处理一切:从屏幕,处理器,定制的操作系统,API层级以及任何其他的特定设备。
这是我对使Android应用舒服起来的个人建议。
目标屏幕尺寸及解决方法
在Android世界里目前有超过100种的不同屏幕尺寸,但解决方法也很丰富。为使你的应用适应不同的屏幕配置有两件事情你需要确定:
你对不同的屏幕尺寸有一个好的布局和结构
你的图像在不同分辨率下工作良好
这些都是独立的任务,你可能有一个超级的tablet布局,但上面的图形看起来很糟糕。我们会依次讨论他们。
为不同的屏幕而设计
1.通常会用ScrollView 和 ListView 轻松搞定
当我们有一系列不同尺寸的大屏手机时,它们之间最大的不同就是屏幕的高度。因此ScrollView和ListView通常可是有效的工作,虽然有时它们并不能完全覆盖全部屏幕。在OpenSignal中的Dashboard标签下我们可以看到所有部件一气呵成,不存在滑动、对于许多高级类型标签中,滑动展示并不见得是一件坏事。如果你能够为你所有的设计匹配到各种屏幕上面去,那么最好不过。否则,这两个控件会让你用最小的开发代价来保证你的软件在大多数屏幕上正常展示。
Dashboard style 的设计不需要scroll
2: 使用文件夹. Android 的文件夹结构非常强大, 它允许开发者将不同的、字符串、布局文件、外形、颜色这些,在api、代码、屏幕尺寸等部分. 下面是一个例子,展示了在文件夹下你可以怎样做:
在 values-small 文件夹中存放了一个 bools.xml 文件, 文件中有如下几行代码:
<resources>
<bool name="small_screen">true</bool>
</resources>
在代码中我可这样引用:
if(getResources().getBoolean(R.bool.small_screen)){
getSupportActionBar().hide();
}
在小尺寸设备中boolean值将置为true 我此时将因此ActionBar来节省空间. 这段代码正是非凡的ActionBarSherlock 扩展库中的一部分,稍后再详细介绍. 在values-sw360dp文件夹中,存放对应屏幕宽于360dp的文件。与上面相同的位置,有如下代码
<resources>
<bool name="small_screen">false</bool>
</resources>
对于大屏幕而言,ActionBar就置为了显示状态.
我不需要将 bools.xml 文件放入 values-sw400dp文件夹中, 因为操作系统会自动按相应路径搜索. 例如一个设备宽 600dp (600/160=3.75 英寸, 这就是我们通常所说的7片装) 操作系统会在values-sw600dp 和其包含的的文件夹中搜索 bools.xml 文件, 若没有找到则搜索 values-sw400dp 文件夹,在搜索 values-sw360dp 文件夹以此类推.
建议3:160dp = 1英寸。320 dp = 2英寸。dp = dip
建议4:你可以用这些目录结构技巧来应付所有类型,比如你的XML布局用指定的系统目录名称
来解决这个问题,如:layout-sw360dp目录可以匹配目标宽是360dp的机器。如果你也要支持横竖屏布局切换的话,可以用如下目录:
layout-sw360dp-land
layout-sw360dp-port
别急,你有一半的用户是说阿拉伯语的?那就将布局名称改为下面的样子吧:
layout-sw360dp-land
layout-sw360dp-port
layout-sw360dp-land-ar
layout-sw360dp-port-ar
前两个可以适用于所有语言,-ar代表阿拉伯语。
建议5:规则简介:
XXX //例子:没有添加目录名:默认-适用于Nexus One,Droid 2,S2
XXX-sw360dp // 比较大的手机 ? Galaxy Nexus, S3, S4
XXX-sw600dp // 7〃 平板
XXX-sw720dp // 10? 平板
在Kindle设备有些不同,如下:
XXX-large-mdpi // kindle fire 7〃
XXX-large-hdpi // kindle fire 7〃 HD
建议6:如果你不想裁剪所有的布局文件,你可以用dimens.xml文件。你要是留心我上面的文章,你就会注意到在我的values目录里有很多dimens.xml,这样是因为我更喜欢在一个layout.xml里设置值,在每一个布局文件里我喜欢这样做:
<ImageView
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/small_margin"
android:layout_width="@dimen/dashBoardWidth"
android:layout_height="@dimen/dashBoardHeight"
android:id="@+id/dashboard"/>
small_margin是在dimen.xml文件里定义的:
<resources>
<dimen name="small_margin">4dp</dimen>
</resources>
这个4dp变量在所有dimen文件里。我有个Excel文件,里面创建了所有不同的基于不同因素所需的尺寸定义。也许你会问:为什么不让android OS来处理所有尺寸的问题?为什么不呢,为什么不用一个values目录和一个布局目录来代替所有写死的数值呢?那当然是可以的,如果设置得当,都会得到所有的尺寸,但是对于有些元素看起来就不是那么好计算尺寸了。
建议7:让空白空间大于图像空间。让图像空间大于按钮的大小。如果将按钮,多选框,切换控件放大后是很丑陋的。一个100dip(0.63")大小的按钮是不想在平板上显示为原来两倍宽度200dip(1.25")的.原因是屏幕变大了,这不是说平板是给巨人用的。我们可以这样做,在按钮增加的空间和扩展的空间里添加空白。
建议8:用GraphicalLayout工具快速预览。GraphicalLayout是WYSIWG XML编辑器。我喜欢直接编写元素-而不是拖,丢弃的可见编程方式,但在添加一些元素之后,可以在GraphicalLayout的下拉选择菜单里选择不同屏幕尺寸进行测试。
这里有很多选项供你选择。
缩放
建议9:不要把所有的都缩放了。用布局文件来适应不同屏幕尺寸的方法只是成功的一半,布局里的元素(如:)也要能在高分辨率的屏幕下良好工作。在概念上比较简单的方式就是创建一套完整的目录并将它们与很多drawable目录匹配起来。
drawable-sw600dp-ldpi
drawable-sw600dp-mdpi
drawable-sw600dp-hdpi
drawable-sw600dp-xhdpi
drawable-sw600dp-xxhdpi
...其它的类似。
不要这样做:
你不要太尽信书了。
一般来说有drawble-ldpi, drawable-hdpi等目录就足够了,不需要将所有的情况都加上。
建议10:避免使用位图(jpg,png)。对于一些图标来说,用位图是个不错的选择,因为它们使用简单。但是如果可以避免使用位图,你可以节省很多空间。但用不同的方法也可以达到很好的结果。
建议11:用XML绘图。位图都可以用XML绘图来代替的。XML绘图不是万能的,但是它的方便性还是使我感到惊讶。Android开发文档中有详细的介绍,这里有个简单的例子:
这里是定义了一个圆角矩形,一个有渐变的边(深蓝)。你可以在布局文件的任何地方来引用,而且它可以适应于任何屏幕。用它可以做出理想的按钮。
建议12:用更多的XML绘图。再来介绍一个用XML绘图制作出能更加让你兴奋的例子,下面的雷达背景看起来是不是更加的复杂:
不用位图对你的UI是没有坏处的(除过图标)。
建议13:仍然用更多的XML绘图(如果必须,就用位图)。那我们怎样为天气信号构建一个超酷的图标-让灯泡动态的依据光的强度来进行自动填充,以及怎么点击指针后让其旋转呢?这里我们用位图和XML结合起来做个例子:
灯泡我们用PNG图:icon_magnitude_min(一个空的灯泡)和icon_magnitude_max(充满光的灯泡),然后我们动态的裁剪后者。为了实现这个目标我是这样做的:
在ja程序中我将得到回形针的引用,然后可以用它来控制光的强度。
建议14: 为什么要用9-patch (当你可以用XML drawables的时候)? Android具有使用9-patches 来定义drawables的选择,有些教程阐述了怎样用它们来做一个按钮,这样可以在伸展的时候保持几个角不变 (并且避免了像素处理)。如果你已经知道怎样使用9-patches,可能是从web设计中学会的,那么它们或许值得一用。如果你对9-patches并不熟悉,我建议你维持原样。如果你想适应什么东西?例如拐角的圆弧或者颜色,创建9个小块要比创建位图更多被涉及,这就像回到了图像编辑器的时代。许多用9-patches获得的效果也可以通过XML获得。
建议15: 通过覆盖onDraw()创建自定义views. 有些事情XML并不十分在行,我们在OpenSignal和WeatherSignal中画过许多图像,为此有许多的库,但是我们要为自定义图像自己编写代码。这很有趣。或许你永远也不需要做这个,但为了使图像高度动态并自定义,这经常是唯一可行的办法。
建议16:在不能使用XML的地方使用SVG. 有时候覆盖onDraw()并勤勤恳恳的为自定义view编写代码画出需要的线条与弧线是过于技术化了。毕竟有一种矢量图像语言,它称作?Scalable Vector Graphics(可扩展矢量图形)。它也是史上最酷的Android应用之一?Androidify的动力来源。事实上他们创建这个库就是为了那款应用,他们将它发布在这里:SVG for Android 。这也就是我们在OpenSignal中画仪表盘所用到的。
建议17: 对SVG文件GZip压缩. 将它们变得更小它们就会处理的更快。
建议18: SVG库并不是支持一切. 在一些特定的alpha通道中似乎不能正常工作,你甚至不得不在代码中将它们剔除。
达到在android所有版本里表示展现一致的目标
建议19:在一些android系统里(如TouchWhizz/HTC Sense/MotoBlur等等),默认的buttons和其他UI组件会跟原生系统里的看起来差别很大。我希望这不是真的,但事实却是如此。
建议20:自定义你的UI组件。为了确定你的在所有的设备里看起来是一致的,你将需要自定义所有的东西。这其实没有你想象中那么难,只要你做到了,你将能更加好地把握到你的的展示外观。
建议21:Selectors是创建buttons的利器。我们在上面提到了如何在XML里定义button的背景,但是你将如何创建一个当按下去会改变的button呢?很简单:像下面那样在xml文件里定义背景。该xml文件将接收到button当前状态并且在外观上做出相应的改变。
建议22:在Honeycomb之前的版本里时不存在ActionBar跟很多 animation 样式的,所以可以使用ActionBarSherlock 跟NineOldAndroids来代替。Jake Wharton写的Android开源 组件都是往下兼容的精心杰作。更为惊喜的是,ABS 拥有强大的功能用来定义ActionBar。
把速度作为目标
建议23:在运行慢的手机上测试。你将在运行慢的手机上发现很多问题,同时它让你抓狂,没人会喜欢运行慢的程序。
建议24:尽量减少XML布局层次。更多的层次意味着系统将为解析你的代码付出更多的工作,这将会让图像渲染的更慢。
建议25:用Android Lint。在工程目录上右键选择Eclipse>Android Tools>Run Lint。它将会得到程序的一些信息,并能提高程序的运行速度,或者它能让你得代码更加清爽。
建议26:Android Lint可以得到错误信息。它可以给你的代码提供很详细的信息,并在你出错之前就可以给做出提示。
建议27:用<merge>可以帮助你减少视图层次结构。这是一种简单的方式来去除多余的层次。好的文章都对此有所解释,而且在 Android Developer中它也显得与众不同。
建议28:用HierarchyViewer可以直观的看到你布局的层次。这个智能的工具可以显示布局中有多少层次,而且可以提示出那些可以让程序变慢。
建议29:如果可以尽量用RelativeLayout。AbsoluteLayout已经过期了,就不要用了。你经常会遇到在RelativeLayout和LinearLayout中做出选择的情况,那就直接用RelativeLayouot吧,因为它可以让你减少视图层次。比如,你想实现一个如下视图:
盒子 A 在屏幕左半边 |盒子 B在屏幕右半边
你首先会想到这么做:
<LinearLayout
android:layout_width=?match_parent?
android:layout_height=?wrap_content?
android:orientation=?horizontal?
>
<TextView
android:text=?Box A takes up left half of the screen?
android:layout_width=?0dip?
android:layout_height=?wrap_content?
android:layout_weight=?1?
/>
<TextView
android:text=?Box B takes up left half of the screen?
android:layout_width=?0dip?
android:layout_height=?wrap_content?
android:layout_weight=?1?
/>
</LinearLayout>
That works just fine, but you could also use:
<RelativeLayout
android:layout_width=?match_parent?
android:layout_height=?wrap_content?
android:orientation=?horizontal?
>
<TextView
android:text=?Box A takes up left half of the screen?
android:layout_width=?match_parent?
android:layout_height=?wrap_content?
android:layout_toLeftOf=?@+id/dummy_center?
/>
<View
android:id=?@+id/dummy_center?
android:layout_width=?0dip?
android:layout_height=?0dip?
android:layout_grity=?center?
/>
<TextView
android:text=?Box B takes up left half of the screen?
android:layout_width=?match_parent?
android:layout_height=?wrap_content?
android:layout_toRightOf=?@+id/dummy_center?
/>
</RelativeLayout>
第二个表单比第一个难看的多,事实上是相当的糟糕:我们已经介绍过一个完整的新元素了。但是如我们要给每个盒子里加入一个,一般的我们将这样做:
盒子 A 在屏幕左半边 |盒子 B在屏幕右半边
用第一中方法,你得创建一个有两个层次的LinearLayout,如果用第二种方法,你可以直接在同一个RelativeLayout中加入,比如要指定第一个必须在?dummy_center?的左边,而且一个TextView A必须也在其左侧。那么你就得用7个元素3个视图层次了(LinearLayout 方式),而(RelativeLayout方式)只用6个元素2个层次,这样所有的工作添加完成。
建议30:用一些扩展工具如DDMS。这可以帮助你发现一些不必要的网络调用、查看电池使用量、垃圾回收信息,状态变化(例子:当回调onStop和onDestroy时)等。LittleEye是我目前比较喜欢的工具。
建议31:用AsyncTasks。Anroid工程团队受够了人们经常在UI线程里面实现网络调用(译注:耗时操作,容易阻塞UI刷新),所以他们实现了一些可产生编译级错误信息的API。但是仍然在很多中的一些工作会拖垮UI线程,我们要考虑到UI布局要快以及提高UI的响应性。
目标机器空间小
建议32:一些Aandroid设备有100mb空间大小的限制。现在情况已有变化了,但是仍然有很多用户还会担心5Mb大小的会浪费空间。如果你可以选择将装入SD卡的话,这就不是问题了,但如果你的需要在onBoot里启动的话你就不能装入SD卡了(例子:如一些窗体小部件).甚至对于一些新的设备,如果能很快的下载一个小的APK的话,用户还是很高兴的。
建议33:用XML(我发誓上次我已经提醒过了),这将比PNG节省很多空间,当你仅仅需要一个可以满足很多屏幕大小的配置时,一个XML文件会比能实现同样功能的PNG省空间。
建议34:如果要用PNG,最好优化一下(用PNGCrush或ImageOptim)
目标bugs
建议35:在Android开发者控制台里检查所有被自动检测出来的bugs.
建议36: ProGuard现在是默认启动着的. Proguard太好用了 (提高你的速度和降低文件大小),但这也让StackTraces 非常难以处理。你将需要重新追踪你的StackTraces,因此你将需要继续保留在每次构建中创建的Proguard的映射文件。我把它们都放到以代码版本号命名的文件夹里。
建议37: 为了显示StackTraces里的行数,你需要修改ProGuard的配置。确认你的proguard.cfg拥有下面这句话:
-keepattributes SourceFile,LineNumberTable
建议38:使用staged rollouts。测试5%的基础用户,并且观察bug报告。
建议39:使用真实设备测试平台。Device Anywhere and Perfecto Mobile提供了虚拟测试平台,在那里,你可以使用真正的移动设备。我发现他们有一些笨拙,加入连续不断地进行测试的话,会导致有一些糟糕的情况。如果你在联合办公的环境里工作,或者有一些Android开发的好友,那么去启动一个?设备池?吧。
建议40: 多写代码少写博客。其实不是的, 分享就是关爱, 我只是想不出第40条写什么是了。
CPU是手机的重要组成部分,是不可缺少的角色。下面是我带来的关于安卓手机CPU占用率总是很高怎么解决的内容,欢迎阅读!
安卓手机CPU占用率总是很高怎么解决:
可能性有以下几个。
1、CPU使用率查看软件不准确,这个很普遍,所以最好多用几个软件试试。
2、手机固件有缺陷,导致CPU使用率始终过高,这时最好刷一个稳定点的rom。
3、开启了过多的程序,可以使用优化大师的程序管理清理一下后台进程。
4、某个程序由于设计不当或者不兼容导致占用大量CPU,可以使用安卓优化大师手机体检里的运行监测。
相关 阅读推荐 :
2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。2007年11月5日,谷歌公司正式向外界展示了这款名为Android的 操作系统 ,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。[4-5] 2008年,在GoogleI/O大会上,谷歌提出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。
2009年4月,谷歌正式推出了Android 1.5这款手机,从Android 1.5版本开始,谷歌开始将Android的版本以甜品的名字命名,Android 1.5命名为Cupcake(纸杯 蛋糕 )。该系统与Android 1.0相比有了很大的改进。2009年9月份,谷歌发布了Android 1.6的正式版,并且推出了搭载Android 1.6正式版的手机HTC Hero(G3),凭借着出色的外观设计以及全新的Android 1.6操作系统,HTC Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)。2010年2月份,Linux内核开发者Greg Kroah-Hartman将Android的驱安卓各个版本在市场受欢迎度动程序从Linux内核?状态树?(?staging tree?)上除去,从此,Android与Linux开发主流将分道扬镳。在同年5月份,谷歌正式发布了Android 2.2操作系统。谷歌将Android 2.2操作系统命名为Froyo,翻译完名为冻酸奶。
看了安卓手机CPU占用率总是很高怎么解决 文章 内容的人还看:
1. 手机cpu过高怎么办
2. CPU经常出现使用率100%解决方法
3. cpu占用率太高怎么办
4. CPU占用率高的原因及解决方法
5. 电脑CPU占用率太高了怎么办
6. CPU占用率高原因
7. qqcpu占用过高怎么办
8. 电脑CPU占用率很高
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。