android 杂记 3

用android studio 很心烦,太慢了。不仅仅是因为 google ,android被墙了。艹,玩蛋啊!!!!


http://blog.chinaunix.net/uid-26435987-id-3209050.html
android.intent.action.MAIN
android.intent.category.LAUNCHER
第一种情况:有MAIN,无LAUNCHER,程序列表中无图标
原因:android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里 
第二种情况:无MAIN,有LAUNCHER,程序列表中无图标
原因:android.intent.action.MAIN决定应用程序最先启动的Activity,如果没有Main,则不知启动哪个Activity,故也不会有图标出现


生成android应用图标
http://romannurik.github.io/AndroidAssetStudio/index.html


Title bar & ActionBar


The Title bar is a small part of the UI that you can supply with some text and a color. You see it on a lot of Android 2.0 Apps. See here
The Actionbar is the bar with buttons that has back navigation etc. If you can chose, you use it instead of the Titlebar. See here
TitleBar - small (usually grey) strip at top of screen that lists your Application Name (mostly not used anywhere)
ActionBar - the core navigation component of modern Android apps - this is where you will put the main navigation components (including actions on the things in your activity, a title explaining where you are in the app, Share links, etc); To support this in all modern Android versions, you will need to use a library to implement this. ActionBarSherlock is a very popular one, and there is now ActionBarCompat, which was released in the latest Support Library.
Bottom line, TitleBar should be disabled in favor of ActionBar for applications targeting modern design standards



android项目中values中几个文件的作用 
最近反编译了几个Android软件,发现一些以前未用到的资源文件:
ids.xml——为应用的相关资源提供唯一的资源id。id是为了获得xml中的对象而需要的参数,也就是Object = findViewById(R.id.id_name)中的id_name。这些值可以在代码中用android.R.id引用到。
若在ids.xml中定义了ID,则在layout中可如下定义@id/price_edit,否则@+id/price_edit。


为什么使用ids?
我个人认为有以下几点作用:
(1)优化编译效率。
我们知道android的组件必须用一个int类型的id属性来标识其唯一性,id属性必须以@开头的值,例如,@id/abc、@+id/xyz等。
如果使用"@+id/name"形式,当R.java中存在名为name变量时,则该组件会使用该变量的值作为标识。如果不存在该变量,则添加一个新的变量,并为该变量赋相应的值(不会重复)。
当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的int类型变量。变量名就是“/”后面的值,例如,@+id/xyz会在R.java文件中生成int xyz = value,其中value是一个十六进制的数。如果xyz在R.java中已经存在同名的变量,就不再生成新的变量,而该组件会使用这个已存在的变量的值。


使用@id/name形式,预先定义的id已经生成,修改配置文件时,也不会引起系统重新生成。


(2)统一管理资源Id。


public.xml——描述的是为attr、id、drawable所指定的一个32的id值,这个值在current.xml文件中会被用到。
当我们对public.xml做了改动后,执行make update-api命令,相应的current.xml就会添加这些改动。
在public.xml中资源数据的定义会影响到current.xml文件,它们分别在frameworks/asecoreesesvalues和framework/aseapicurrent.xml中。
当进行内核文件修改时,需要特别注意public.xml文件的同步,该文档定义了资源文件的二进制兼容性。因此需要小心对待该文件,否则可能会破坏该版本的向后兼容性。


  为了避免破坏兼容性,新的资源需加在同类资源的最后(主要ID值,按照ID值递增)。若是放置在中间会导致随后的同类资源被赋予新的ID值从而破坏兼容性。
添加id的方法:
1)在ids.xml中添加公共id项,在public.xml中也添加相应的id项。这种办法没有兼容性,会与后面的版本产生冲突。
2)在ids.xml中添加公共id项,每一项前面加一行<!– @hide –>的注释,这样就不用在public.xml中添加相应的项了。源码中是的形式,这样current中就不会有相应的段了。
3)在自己写的xml中,使用android:id = “@+id/id_name”的形式,就和在eclipse中一样,搜一下会发现android源码中也有这么用的,这样ids.xml和public.xml都不用改,兼容性我还不确定。
其它常用的资源文件:
attrs.xml——当中定义的是类的属性,属性是为了能在xml文件中被引用到,换句话说就是指定类中变量(也就是属性的实际作用者)的值。这些属性会在类的构造函数中用到。看过一两个源码就会明白,构造函数中的TypedArray其实就是属性的数组,数组的成员会被赋给类里的成员,完成从xml的初始化。类的构造函数一般有三个,一个是Class(context),这个用于在代码中创建一个类,所以只包含一个上下文;Class(context, attrs)和Class(context, attrs, defStyle)用于从xml创建类的情况。
styles.xml——当中是各个控件的“样式”,样式由一个个属性所组成。我们在编辑xml文件的时候,不同的类所能设置的属性有共同的,也有不同的,都是由样式来控制的。具体可以去看styles.xml这个文件的内容。
themes.xml其实也是样式,只是适用的范围大一点,这个我是参考网上别人的看法,自己还没研究过。
colors.xml——当中定义各种颜色值。
strings.xml——当中定义使用到的字符串常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值