当前位置:首页 » 安卓系统 » android标准

android标准

发布时间: 2022-11-18 02:16:09

‘壹’ android中FIFO标准是一种怎么样的标准 它是一个类吗 还是一种方法

First in first out
先进先出队列,一种数据结构,不是类,也不是方法。
FIFO概念也不仅仅限制在android中。

‘贰’ > 关于安卓系统:什么是GB、HC、ICS、JB、KLP

其实都是不同系统版本的代号,区别在于不同版本.
GB是姜饼系统(Android 2.3);
HC是蜂巢系统(Android 3.0/3.1/3.2); *这个是用在平板电脑的*
ICS是冰淇淋系统(Android 4.0);
JB是果冻豆系统(Android 4.1);
KLP是酸橙派系统(Android 4.2). 不同版本的安卓系统(含代号):
Android 1.1Android 1.5 => Cupcake(纸杯蛋糕)Android 1.6 => Donut(甜甜圈)
Android 2.0/2.0.1/2.1 => Eclair(松饼)
Android 2.2/2.2.1 => Froyo(冻酸奶)
Android 2.3.x => Gingerbread(姜饼)
Android 3.0 => Honeycomb(蜂巢)
Android 3.1 => Honeycomb(蜂巢) Android 3.2 => Honeycomb(蜂巢)
Android 4.0 => Ice Cream Sandwich(冰激凌三明治)
Android 4.2 => Key Lime Pie(酸橙派)非标准安卓版本摩托罗拉基于标准Android修改的Blur系统HTC基于标准Android修改的Sense系统三星基于标准Android修改的TouchWiz系统LG基于标准Android修改的LG Optimus系统小米基于标准Android修改的MIUI系统酷派基于标准Android修改的CoolTouch系统魅族基于标准Android修改的Flyme OS系统夏普基于标准Android修改的TapFlow UI系统华为基于标准Android修改的Emotion UI/定制系统天语基于标准Android修改的阿里云系统中兴基于标准Android修改的Mifavor系统联想基于标准Android修改的乐OS系统(乐magic)腾讯基于标准Android修改的tita系统

‘叁’ android 系统签名

也有提到怎么单独给一个apk签名,这里补充一下android的签名权限控制机制。

android的标准签名key有:

     testkey

     media

    latform

    hared

    以上的四种,可以在源码的/build/target/proct/security里面看到对应的密钥,其中shared.pk8代表私钥,shared.x509.pem公钥,一定是成对出现的。

    其中testkey是作为android编译的时候默认的签名key,如果系统中的apk的android.mk中没有设置LOCAL_CERTIFICATE的值,就默认使用testkey。

   而如果设置成:

   LOCAL_CERTIFICATE := platform

    就代表使用platform来签名,这样的话这个apk就拥有了和system相同的签名,因为系统级别的签名也是使用的platform来签名,此时使用android:sharedUserId="android.uid.system"才有用!

     在/build/target/proct/security目录下有个README,里面有说怎么制作这些key以及使用问题(android4.2):

     从上面可以看出来在源码下的/development/tools目录下有个make_key的脚本,通过传入两个参数就可以生成一对签名用的key。

    其中第一个为key的名字,一般都默认成android本身有的,因为很多地方都默认使用了这些名字,我们自定义的话只需要对第二个参数动手脚,定义如下:

    C ---> Country Name (2 letter code) ST ---> State or Province Name (full name) L ---> Locality Name (eg, city) O ---> Organization Name (eg, company) OU ---> Organizational Unit Name (eg, section) CN ---> Common Name (eg, your name or your server’s hostname) emailAddress ---> Contact email addre

    另外在使用上面的make_key脚本生成key的过程中会提示输入password,我的处理是不输入,直接enter,不要密码!后面解释,用自定义的key替换/security下面的。

    可以看到android源码里面的key使用的第二个参数就是上面README里面的,是公开的,所以要release版本的系统的话,肯定要有自己的签名key才能起到一个安全控制作用。

    在上面提到如果apk中的编译选项LOCAL_CERTIFICATE没有设置的话,就会使用默认的testkey作为签名key,我们可以修改成自己想要的key,按照上面的步骤制作一个releasekey,修改android配置在/build/core/config.mk中定义变量:

在主makefile文件里面:

ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/target/proct/security/releasekey)

  BUILD_VERSION_TAGS += release-key

这样的话默认的所有签名将会使用releasekey。

修改完之后就要编译了,如果上面的这些key在制作的时候输入了password就会出现如下错误:

我在网上找到了合理的解释:

其实会出现这个错误的最根本的原因是多线程的问题。在编译的时候为了加速一般都会执行make -jxxx,这样本来需要手动输入密码的时候,由于其它线程的运行,就会导致影响当前的输入终端,所以就会导致密码无法输入的情况!

再编译完成之后也可以在build.prop中查看到变量:

这样处理了之后编译出来的都是签名过的了,系统才算是release版本

我发现我这样处理之后,整个系统的算是全部按照我的要求签名了。

网上看到还有另外的签名release办法,但是应该是针对另外的版本的,借用学习一下:

make -j4 PRODUCT-proct_mol-user dist

这个怎么跟平时的编译不一样,后面多了两个参数PRODUCT-proct_mol-user 和 dist. 编译完成之后回在源码/out/dist/目录内生成个proct_mol-target_files开头的zip文件.这就是我们需要进行签名的文件系统.

我的proct_mol 是full_gotechcn,后面加“-user”代表的是最终用户版本,关于这个命名以及proct_mol等可参考http://blog.csdn.net/jscese/article/details/23931159

编译出需要签名的zip压缩包之后,就是利用/security下面的准备的key进行签名了:

./build/tools/releasetools/sign_target_files_apks -d /build/target/proct/security  out/dist/full_gotechcn-target_files.zip   out/dist/signed_target_files.zi

签名目标文件 输出成signed_target_files.zi

如果出现某些apk出错,可以通过在full_gotechcn-target_files.zip前面加参数"-e =" 来过滤这些apk.

然后再通过image的脚本生成imag的zip文件,这种方式不适用与我目前的工程源码,没有做过多验证!

Android签名机制可划分为两部分:(1)ROM签名机制;(2)第三方APK签名机制。

Android APK实际上是一个jar包,而jar包又是一个zip包。APK包的签名实际上使用的是jar包的签名机制:在zip中添加一个META的子目录,其中存放签名信息;而签名方法是为zip包中的每个文件计算其HASH值,得到签名文件(*.sf),然后对签名文件(.sf)进行签名并把签名保存在签名块文件(*.dsa)中。

在编译Android源码生成ROM的过程中,会使用build/target/proct/security目录中的4个key(media, platform, shared, testkey)来对apk进行签名。其中,*.pk8是二进制形式(DER)的私钥,*.x509.pem是对应的X509公钥证书(BASE64编码)。build/target/proct/security目录中的这几个默认key是没有密码保护的,只能用于debug版本的ROM。

要生成Release版本的ROM,可先生成TargetFiles,再使用带密码的key对TargetFiles重新签名,最后由重签名的TargetFiles来生成最终的ROM。

可以使用Android源码树中自带的工具“development/tools/make_key”来生成带密码的RSA公私钥对(实际上是通过openssl来生成的): $ development/tools/make_key media ‘/C=CN/ST=Sichuan/L=Cheng/O=MyOrg/OU=MyDepartment/CN=MyName’ 上面的命令将生成一个二进制形式(DER)的私钥文件“media.pk8”和一个对应的X509公钥证书文件“media.x509.pem”。其中,/C表示“Country Code”,/ST表示“State or Province”,/L表示“City or Locality”,/O表示“Organization”,/OU表示“Organizational Unit”,/CN表示“Name”。前面的命令生成的RSA公钥的e值为3,可以修改development/tools/make_key脚本来使用F4 (0×10001)作为e值(openssl genrsa的-3参数改为-f4)。

也可以使用JDK中的keytool来生成公私钥对,第三方APK签名一般都是通过keytool来生成公私钥对的。

可以使用openssl x509命令来查看公钥证书的详细信息: $ openssl x509 -in media.x509.pem -text -noout or, $ openssl x509 -in media.x509.pem -inform PEM -text -noout

还可以使用JDK中的keytool来查看公钥证书内容,但其输出内容没有openssl x509全面: $ keytool -printcert -v -file media.x509.pem

有了key之后,可以使用工具“build/tools/releasetools/sign_target_files”来对TargetFiles重新签名: $ build/tools/releasetools/sign_target_files_apks -d new_keys_dir -o target_files.zip target_files_resigned.zip 其中,new_keys_dir目录中需要有四个key(media, platform, shared, releasekey)。注意:这里的releasekey将代替默认的testkey(请参考build/tools/releasetools/sign_target_files脚本实现),也就是说,如果某个apk的Android.mk文件中的LOCAL_CERTIFICATE为testkey,那么在生成TargetFiles时是使用的build/target/proct/security/testkey来签名的,这里重新签名时将使用new_keys_dir/releasekey来签名。

uild/tools/releasetools/sign_target_files_apks是通过host/linux-x86/framework/signapk.jar来完成签名的。也可以直接使用host/linux-x86/framework/signapk.jar来对某个apk进行签名: $ java -jar signapk [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar 其中,”-w”表示还对整个apk包(zip包)进行签名,并把签名放在zip包的comment中。

对于第三方应用开发者而言,对APK签名相对要简单得多。第三方应用开发一般采用JDK中的keytool和jarsigner来完成签名密钥的管理和APK的签名。

使用keytool来生成存储有公私钥对的keystore: $ keytool -genkey -v -keystore my-release-key.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000

查看生成的密钥信息: $ keytool -list -keystore my-release-key.keystore -alias mykey -v or, $ keytool -list -keystore my-release-key.keystore -alias mykey -rfc (注:获取Base64格式的公钥证书,RFC 1421)

导出公钥证书: $ keytool -export -keystore mystore -alias mykey -file my.der (注:二进制格式公钥证书,DER) $ keytool -export -keystore mystore -alias mykey -file my.pem -rfc (注:Base64格式公钥证书,PEM)

对APK进行签名: $ jarsigner -verbose -keystore my-release-key.keystore my_application.apk mykey

验证签名: $ jarsigner -verify -verbose -certs my_application.apk

在进行Android二次开发时,有时需要把build/target/proct/security下面的公私钥对转换为keystore的形式,可以参考这篇文章:把Android源码中的密码对转换为keystore的方法。

‘肆’ 以Android 的标准来说,UI 和 OS 的区别是什么

UI是OS的一部分,os指的是整个系统,android就是一个os,ui指的是可视界面,比如你看到的桌面显示。
另,这个跟android 标准没有关系。

‘伍’ android l和m 分别代表什么意思

版本越来越高,功能也越来越完善了,android l与android m的区别主要还是应该关注m对l的改进吧。

Android M相比Android Lollipop(5.0)有六项重大的改进:
1.App Permissions(软件权限管理):在Android M里,应用许可提示可以自定义了。
2.Chrome Custom Tabs(网页体验提升):新版的M对于Chrome的网页浏览体验进行了提升,它对登陆网站、存储密码、自动补全资料、多线程浏览网页的安全性进行了一些列的优化。
3.App Links(APP关联):Android M加强了软件间的关联。
4.Android Pay(安卓支付):Android支付统一标准。
5.Fingerprint Support(指纹支持):Android M增加了对指纹的识别API。
6.Power & Charge(电量管理 ):新的电源管理模块将更为智能,比如Android平板长时间不移动时,M系统将自动关闭一些App。同时Android M设备将支持USB Type-C接口,新的电源管理将更好的支持Type-C接口。

‘陆’ 谷歌欲设立Android车载平台遵从标准

据业内观察人士透露,谷歌有意制定一套基于安卓汽车平台的合规标准,PND厂商推出安卓平台设备的努力可能受阻。根据合规标准,相关供应商推出的AndroidPND设备将接受谷歌严格的验证程序。观察人士表示,这一措施对汽车制造商和远程信息处理设备供应商产生了强烈影响。自动导航器包括Garmin、Mitac和Papago在内的许多PND供应商已经推出了基于安卓的设备。但是,大多数PND厂商都不是开放移动联盟的成员,因此他们的产品无法通过谷歌验证,或者无法完全支持所有谷歌应用。据消息人士透露,PND供应商是否会推出符合标准的PND设备,还是像白色智能手机厂商一样,干脆避开法规,向白色AndroidPND厂商过渡,还有待观察。

‘柒’ Android软件开发主要是学习什么的

近半年来,手机的安卓系统与ios系统是目前主流的手机系统,Android软件开发主要是学习什么的?IT培训http://www.kmbdqn.cn/发现安卓开发的技术很多的,如果想一次性学好是不实际的,但下面这些基础还是要学好的。



1、Activity生命周期


虽然Android中有四大组件,但是不可否认Activity是最常用的。所以熟练掌握Android的生命周期是必须的。其实生命周期就是记住Activity的那些方法在什么时候被系统调用,这样才可以把对应的逻辑代码写到合适的方法内部去。


至于服务和广播组件可以稍微缓一下,到实际使用的时候再学习都可以。

2、界面开发技术


界面开发是一种基本的技术,几乎所有的程序里面都需要用到。在Android开发中界面开发分为3种:


1)使用xml文件布局


使用xml首先对于界面进行布局,然后在Activity里面进行引用是最常见的应用软件开发技术,这种方式使用的最大,需要学习的内容也最多。学习时需要熟悉:


a)五种Layout布局


深刻理解五种布局组织控件的方式是一个基本的基础,这样你才可以在实际的界面中灵活的使用每种布局结构,构造出需要的界面。


b)常用控件


控件有很多,至少要知道每种控件是做什么的,至于里面的特定参数和方法可以学要的时候再去查


c)界面美化


系统的控件很多时候无法满足要求,需要通过添加背景更换图片等进行美化,要熟悉每种控件如何去美化。


掌握了上面的内容,通过布局的嵌套就可以制作出各种界面,如果在熟悉include的使用就可以减少xml的重复,方便后期的修改和维护了。


2)使用代码动态创建


有些时候需要动态的创建一些布局和控件,这个就需要使用LayoutInflater去创建一些动态的界面了。


3)自己绘制界面


游戏中常用,继承SurfaceView自己绘制。


3、数据存储技术


Android中的数据存储方式有3种:


1)SharedPrefereneces存储


对于简单的数据可以使用该方式存储,以键值对的方式存储一些基本的数据。


2)文件存储


将数据以文件的形式存储,可以是手机自身的存储也可以是SD卡,文件的数据格式自己定义。


3)SQLite数据库存储


使用标准SQL语句进行操作,复杂数据的首选。

4、网络编程


现在的Android程序不需要联网的已经不多了。所以网络编程也是必须的,一般的公司都会封装有自己的联网结构,但是基本的联网还是要熟悉。


1)HTTP联网


使用Http联网+Json数据格式是现在很多客户端的首选。


2)Socket联网


至于蓝牙等连接方式则可以在项目需要的时候学习。


对于手机的系统功能,如拨打电话、发送短信、读取系统参数等则可以根据需要在学习,不麻烦的。


其次,手机软件相关


Android开发不同于普通的电脑软件开发,需要了解手机的操作习惯,知道手机的屏幕不大、内存有限,电池有限等,在实际开发和设计时尽量考虑。


‘捌’ android大班安全分类标准可将大坝分为几类

大坝分为3类。
angela大班安全分类标准可将大坝分为3类。大坝,指截河拦水的堤堰,水库、江河等的拦水大堤。
一般水库大坝主要由主坝、副坝、正常溢洪道、非常溢洪道、新增非常溢洪道、灵正渠涵管及电站组成。

‘玖’ Android 系统的手机标准的四个按键分别是什么

后退键、菜单键、搜索键、HOME键
像索爱、三星这些机型因为厂家定制化的设计只有返回、HOME、菜单三个键

‘拾’ 如何评价 Android M

本文目录:
第一部分 Android M重点新特性
第二部分 其他细小升级点(自己发现+官方未提及)
第三部分 Android M UI 和操作逻辑改变(相比 5.1.1 Lolipop)
第四部分 关于Android M彩蛋

前言:此次Android M 发布并没有像上次L一样给整个Android系统带来质的飞跃(鉴于L是从4.4升级到5.0这个大的飞跃,而M只是5.2,所以情有可原)不过人性化功能的更新确实不少。

本文将采用新特性介绍+上手感觉的形式给大家呈现一个完整的 Android M

OK, Lets get started。

-----------------------------------------------------------------------------------------------------------------------------------------


大家也不必去寻找Android M到底有多少新特性了。。。。发布会的文字云上写的清清楚楚。(白色高亮为重点更新内容)

第一部分,重点新特性:

1.USB-C 支持

点评:这个倒是不出意外,因为自从苹果Macbook和谷歌自家的Chromebook Pixel 将USB Type-C一炮打响之后,有越来越多的厂家和操作系统支持这种新标准是大势所趋。

贴心附录小科普:USB Type-C好在哪儿?

基于USB 3.1规范全新设计的USB Type-C,外观上最大特点在于其上下端完全一致,这意味着用户不必再区分USB正反面,如同苹果Lightning接口一样,两个方向都可以插入。

USB Type-C接口尺寸为8.3×2.5毫米,小于当前PC的USB接口,但大于许多手机采用的尺寸6.85×1.8毫米的micro-USB接口。

USB Type-C(USB 3.1) 的其他特性:

  • 通过USB Power Delivery技术

  • 增进的电磁干扰与RFI mitigation特性

  • 支持1万次拔插。

  • USB Type-C 还支持 DisplayPort,功能终于能与 Thunderbolt 看齐。

  • 降低编码损耗,从3.0的20%降低为3%,并将编码方式改为128b/132b


  • 实际上手测试:无法测试,因为目前暂时没有Android M 设备拥有Type-C接口。

    ——————————————————————————————————————————


  • 2.英文网页复制文字将以单词为单位进行复制(以前是以字母为单位)
  • 点评:功德无量的新功能,以前想在小屏手机上用Chrome复制文字简直累疯,不是少个字母就是多个空格什么的。在发布会上听到这个功能的我泪流满面..........

    之前复制功能反人类的地方还在于复制按钮居然在屏幕顶部,完全无法单手复制,现在复制按钮就在旁边,so easy!

    实际上手测试:

热点内容
ftp有cd命令吗 发布:2025-03-05 04:47:20 浏览:574
云服务器比物理机的优势 发布:2025-03-05 04:46:05 浏览:466
俺妈密码是什么 发布:2025-03-05 04:40:46 浏览:159
yacclex编译器 发布:2025-03-05 04:35:37 浏览:151
安卓相片怎么转另一个手机 发布:2025-03-05 04:23:40 浏览:545
解压要素 发布:2025-03-05 04:16:05 浏览:791
观致网络模块怎么接入安卓车机 发布:2025-03-05 03:53:40 浏览:462
安卓如何被冥龙锁定后免伤 发布:2025-03-05 03:49:13 浏览:969
标准sql语言 发布:2025-03-05 03:42:51 浏览:302
数据库的访问方式 发布:2025-03-05 03:38:13 浏览:578