Android开发手册
目录
Material Design. 2
SharesPrefs存储... 3
手机内部文件存储... 5
SQLite数据存储... 6
Litepal 8
MVP. 9
RxJava. 10
Retrofit 11
Realm... 12
Glide. 13
Relativelayout: 14
常用对齐方式... 15
各种Layout的特有属性... 16
android布局属性详解... 19
android:inputType. 21
时间,日期选择控件... 23
Toast 25
SwipeListView.. 26
Intent 27
android.util.Log. 29
隐藏原生状态栏... 30
Android之网络图片加载的5种基本方式... 31
存储单位... 35
eclipse最有用快捷键整理... 36
Material Design
SharesPrefs存储
SharedPreferences:对应sp文件接口
用来存储单一的小数据,用来存取用户名密码等
存储数据类型:boolean,float,int,long,String
数据保存的路径:/data/data/packageName/shared_prefs/yyy.xml
设置的数据只能是当前应用读取,其他与应用不可以
应用卸载时数据会被删除
方法:context.getSharedPreferences(String name,int mode):得到SP对象
Edit sp.edit():得到Editor对象
XXX sp.getXXX(name,defaultVaule):根据name得到对应的数据
Editor:能更新sp文件的接口
Editor put(name,value);保存一个键值对,没有真正保存到文件中
Editor remove(name)
Commit():提交,数据真正保存到文件中
查看保存的数据
点击右下角decice FileExplorer,进入/data/data/所属应用包名packageName/shared_prefs/yyy.xml
存入键值对
读取键值对:
手机内部文件存储
保存较大的数据或图片
/data/data/projectPackage/files
设置的数据只能是当前应用读取,其他与应用不可以
应用卸载时数据会被删除
手机内部读取文件
SQLite数据存储
存入有一定数据结构的数据
文件类型:db
数据保存的路径:/data/data/projectPackage/database/xxx.db
默认情况下其他应用不能访问,当前应用可以通过ContentProvider提供其他应用操作
应用下载时会删除此数据
SQLiteOpenHelper:数据库操作的抽象数据类
adb shell 进入系统根目录
cd data/data/…/databases : 进入包含数据库文件的文件夹下
sqlite3 contacts2.db : 使用sqlite3命令连接指定的数据库文件, 进入连接模式
.help : 查看命令列表
.tables : 查看所有表的列表
执行insert/delete/update/select语句
.exit : 退出数据库连接模式
Ctrl + C : 直接退出sell模式
Sqlite支持的数据类型与Mysql相似, 常用的数据类型
- INT/INTEGER : 整数
- FLOAT/DOUBLE : 小数
- CHAR/VARCHAR/TEXT : 字符串文本
- BLOB : 文件
- DATE/ DATETIME : 日期/日期时间
Sqlite操作数据库的sql语句基本与mysql一样, 但需要注意下面2个点:
- 最大的不同在于创建表时可以不用指定字段类型, Sqlite可以适时的自动转换, 但除varchar类型外最好指定类型
- Sqlite中的主键最名称建议使用_id
- create table employee (
- _id integer primary key autoincrement, /*主键,自增长*/
- name varchar, /*字符串*/
- salary double, /*小数*/
- birthday date /*日期, 可直接插入日期格式字符串*/
- )
- /*插入*/
- INSERT INTO employee (name,salary,birthday) VALUES('Tom', 8000, '1988-09-21');
- /*删除*/
- DELETE FROM employee WHERE _id=2
- /*更新*/
- UPDATE employee SET name='Jack',salary=salary+1000 WHERE _id=1
- /*查找*/
- SELECT * FROM employee where _id=3
Litepal
MVP
RxJava
Retrofit
Realm
Glide
Relativelayout:
1、基本属性
gravity :设置容器内组件的对齐方式
ignoreGravity : 设置该属性为true的组件,将不受gravity属性的影响
2、根据父容器定位
layout_alignParentLeft : 左对齐
layout_alignParenRight : 右对齐
layout_alignParentTop : 顶部对齐
layout_alignParentButtom : 底部对齐
android:layout_centerHorizontal :水平居中
android:layout_centerVertical : 垂直居中
android:layout_centerInParent : 中间位置
3、根据兄弟组件定位
layout_toLeftOf : 参考组件的左边
layout_toRightOf: 参考组件的左边
layout_above : 参考组件的上方
layout_below : 参考组件的下方
layout_alignTop :对齐参考组件的上边界
layout_alignBottom : 对齐参考组件的下边界
layout_alignLeft: 对齐参考组件的左边界
layout_alignRight : 对齐参考组件的右边界
4、margin(偏移)
设置组件与父容器的边界
layout_margin 设置组件上下左右的偏移量
layout_marginLeft 设置组件离左边的偏移量
layout_marginRight 设置组件离右边的偏移量
layout_marginTop 设置组件离上面的偏移量
layout_marginButtom 设置组件离下面的偏移量
5、padding(填充)
设置组件内部元素间的边距(比如TextView里的字体位置)
android:padding 往内部元素的上下左右填充一定边距
paddingLeft 往内部元素的左边填充一定边距
paddingRight 往内部元素的右方填充一定边距
paddingTop 往内部元素的上方填充一定边距
paddingBottom 往内部元素的下发填充一定边距
常用对齐方式
android:layout_above 将该控件的底部至于给定ID的控件之上
android:layout_below 将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐
android:layout_alignBaseline该控件的baseline和给定ID的控件的baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘
android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐
android:layout_alignParentBottom如果该值为true,则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft如果该值为true,则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight如果该值为true,则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop如果该值为true,则将空间的顶部与父控件的顶部对齐
android:layout_centerHorizontal如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent如果值为真,该控件将被至于父控件水平方向和垂直方向的中央
android:layout_centerVertical 如果值为真,该控件将被至于垂直方向的中央
各种Layout的特有属性
2.1 FrameLayout
作为最简单的Layout,只具备基础属性:
layout_width & layout_height
layout_margin+方位 & padding+方位
layout_gravity & gravity
2.2 AbsoluteLayout
除了基础属性外,AbsoluteLayout还具备:
layout_x:指定控件的x坐标
layout_y:指定控件的x坐标
上述属性的取值均为固定值。
2.3 TableLayout
除了基础属性外,由于TableLayout的行TableRow是一个横向的(horizontal)的LinearLayout,所以具备LinearLayout的属性
2.4 LinearLayout
除了基础属性,还会有:
orientation
1.作用:设置布局内控件的排列方式
2.取值:vertical(垂直排列-默认值)、horizontal(水平排列)
android:orientation="vertical";
//android:orientation="horizontal";
layout_weight
1.定义:是线性布局(Linelayout)的一个独特比例分配属性
2.作用:使用此属性设置权重,然后按照比例对界面进行空间的分配,公式计算是:控件宽度=控件设置宽度+剩余空间所占百分比宽幅
具体可以参考这篇文章,讲解得非常详细
2.5 RelativeLayout
RelativeLayout的属性算是最多的了,除了基本属性外,还有:
a. 相对于父空间
XML属性 说明
layout_alignParentBottom 当前控件底端与父控件的底端对齐
layout_alignParentLeft 当前控件左端与父控件的左端对齐
layout_alignParentRight 当前控件右端与父控件的右端对齐
layout_alignParentTop 当前控件上端与父控件的上端对齐
layout_centerHorizontal 当前控件位于父控件的横向中间位置(水平方向上的中间)
layout_centerVertical 当前控件位于父控件的纵向中间位置(平面上的正中间)
layout_centerInParent 当前控件位于父控件的纵横向中间位置(垂直方向上的中间)
上述所有属性的取值皆为boolean属性:true、false。
b. 相对于给定控件
XML属性 说明
layout_above 使当前控件位于给出id控件的上方
layout_below 使当前控件位于给出id控件的下方
layout_toLeftOf 使当前控件位于给出id控件的左侧
layout_toRightOf 使当前控件位于给出id控件的右侧
layout_alignBottom 使当前控件与给出id控件的底部部重合
layout_alignLeft 使当前控件与给出id控件的左边重合
layout_alignRight 使当前控件与给出id控件的右边重合
layout_alignTop 使当前控件与给出id控件的顶部重合
layout_alignBaseline 使当前控件的BaseLine与给出id控件t的BaseLine重合
上述所有属性的取值皆为给定控件的id名,如下例子
//文本控件@+id/tab_textview在控件@+id/tab_imageview的下方
<TextView
android:id="@+id/tab_textview"
android:layout_below="@+id/tab_imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
3. 选择器selector.xml的属性
3.1 作用
通过设置selector.xml可使得控件在不同操作下(默认、点击、焦点等)的显示不同样式
3.2 属性
XML属性 说明
android:drawable 放一个drawable资源
android:state_pressed 按下状态,如一个按钮触摸或者点击。
android:state_focused 取得焦点状态,比如用户选择了一个文本框。
android:state_hovered 光标悬停状态
android:state_selected 选中状态
android:state_enabled 能够接受触摸或者点击事件
上述所有属性的取值皆为boolean属性:true、false。
3.3 实例说明
在drawable添加selector.xml资源文件。
button_selector.xml:
<?xml version="1.0" encoding="UTF-8"?>
< selector xmlns:android="http://schemas.android.com//res/android">
< !-- 指定按钮按下时的图片 -->
<item android:state_pressed="true"
android:drawable="@drawable/start_down"
/>
< !-- 指定按钮松开时的图片 -->
<item android:state_pressed="false"
android:drawable="@drawable/start"
/>
< /selector>
android布局属性详解
RelativeLayout用到的一些重要的属性:
第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
android:layout_marginStart="110dp" 离某元素开头的距离
EditText的android:hint
设置EditText为空时输入框内的提示信息。
android:gravity
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右
android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右
android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
android:scaleType:
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
android:inputType
//文本类型,多为大写、小写和数字符号,(数字符号)
android:inputType="none"//输入普通字符(英语)
android:inputType="text"//输入普通字符(汉字)
android:inputType="textCapCharacters"//输入普通字符
android:inputType="textCapWords"//单词首字母大小
android:inputType="textCapSentences"//仅第一个字母大小
android:inputType="textAutoCorrect"//前两个自动完成
android:inputType="textAutoComplete"//前两个自动完成
android:inputType="textMultiLine"//多行输入
android:inputType="textImeMultiLine"//输入法多行(不一定支持)
android:inputType="textNoSuggestions"//不提示
android:inputType="textUri"//URI格式
android:inputType="textEmailAddress"//电子邮件地址格式
android:inputType="textEmailSubject"//邮件主题格式
android:inputType="textShortMessage"//短消息格式
android:inputType="textLongMessage"//长消息格式
android:inputType="textPersonName"//人名格式
android:inputType="textPostalAddress"//邮政格式
android:inputType="textPassword"//密码格式
android:inputType="textVisiblePassword"//密码可见格式
android:inputType="textWebEditText"//作为网页表单的文本格式
android:inputType="textFilter"//文本筛选格式
android:inputType="textPhonetic"//拼音输入格式
//数值类型
android:inputType="number"//数字格式
android:inputType="numberSigned"//有符号数字格式
android:inputType="numberDecimal"//可以带小数点的浮点格式
android:inputType="phone"//拨号键盘
android:inputType="datetime"//日期+时间格式
android:inputType="date"//日期键盘
android:inputType="time"//时间键盘
时间,日期选择控件
<DatePicker
android:id="@+id/et_data"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false"
android:datePickerMode="spinner"></DatePicker>
<TimePicker
android:id="@+id/et_time"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false"
android:timePickerMode="spinner"/>
int h=etTime.getCurrentHour();
int m=etTime.getCurrentMinute();
DatePicker:
android:calendarViewShown:是否显示日历。
android:startYear:设置可选开始年份。
android:endYear:设置可选结束年份。
android:maxDate:设置可选最大日期,以mm/dd/yyyy格式设置。
android:minDate:设置可选最小日期,以mm/dd/yyyy格式设置。
DatePicker的方法而言,除了常用获取属性的setter、getter方法之外,还需要特别注意一个初始化的方法init()方法,用于做DatePicker控件的初始化,并且设置日期被修改后,回调的响应事件。此方法的签名如下:
init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
从上面的init()方法可以看到,DatePicker被修改时响应的事件是DatePicker.OnDateChangedListener事件,如果要响应此事件,需要实现其中的onDateChanged()方法,其中参数从签名即可了解意思,这里不再累述。
onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
作为一个时间选择控件来说,TimePicker需要与时间相关的getter、setter方法之外,还需要有时间被修改够,回调的响应事件。
TimePicker常用方法有如下几个:
is24HourView():判断是否为24小时制。
setIs24HourView():设置是否为24小时制显示。
getCurrentXxx():获取当前时间。
setCurrentXxx():设置当前时间。
setOnTimeChangedListener():设置时间被修改的回调方法。
TimePicker控件被修改的回调方法,通过setOnTimeChangedListener()方法设置,其传递一个TimePicker.OnTimeChangedListener接口,需要实现其中的onTimeChanged()方法。
Toast
Toast.makeText(context, "things happened", Toast.LENGTH_SHORT).show();
SwipeListView
<com.fortysevendeg.swipelistview.SwipeListView
xmlns:swipe="http://schemas.android.com/apk/res-auto"
android:id="@+id/example_lv_list"
android:listSelector="#00000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
swipe:swipeFrontView="@+id/front"
swipe:swipeBackView="@+id/back"
swipe:swipeActionLeft="[reveal | dismiss]"
swipe:swipeActionRight="[reveal | dismiss]"
swipe:swipeMode="[none | both | right | left]"
swipe:swipeCloseAllItemsWhenMoveList="[true | false]"
swipe:swipeOpenOnLongPress="[true | false]"
swipe:swipeAnimationTime="[miliseconds]"
swipe:swipeOffsetLeft="[dimension]"
swipe:swipeOffsetRight="[dimension]"
/>
swipeFrontView - Required - front view id. 即ListView Item正常显示的控件Id,且必须与Item的布局文件中的控件id一样
swipeBackView - Required - back view id. 手指滑动时显示的,隐藏在FrontView后面,且必须与item的布局文件中控件Id一样
swipeActionLeft - Optional - left swipe action Default: 'reveal' 左滑的动作,默认reveal,即显示BackView,还有dismiss,choice会触发响应的方法。
swipeActionRight - Optional - right swipe action Default: 'reveal' 同上
swipeMode - Gestures to enable or 'none'. Default: 'both' 设置左滑、右滑、都支持
swipeCloseAllItemsWhenMoveList - Close revealed items on list motion. Default: 'true' 当滚动listview时,关闭所有展开的Item,最好不要设置为false,由于item的复用,false存在一些问题。
swipeOpenOnLongPress - Reveal on long press Default: 'true' 长按时触发显示
swipeAnimationTime - item drop animation time. Default: android configuration 动画时间长度
swipeOffsetLeft - left offset 左偏移量
swipeOffsetRight - right offset 右偏移量
Intent
传值
Intent intent = new Intent(LoginActivity.this,UserActivity.class);
intent.putExtra("extra_name",name);
startActivity(intent);
Intent intent =getIntent();
String name = intent.getStringExtra("extra_name");
android.util.Log
1. Log.v()
这个方法用于打印那些最为琐碎的,意义最小的日志信息。对应级别verbose,是Android 日志里面级别最低的一种。
2. Log.d()
这个方法用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose 高一级。
3. Log.i()
这个方法用于打印一些比较重要的数据,这些数据应该是你非常想看到的,可以帮你分析用户行为的那种。对应级别info,比debug 高一级。
4. Log.w()
这个方法用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info 高一级。
5. Log.e()
这个方法用于打印程序中的错误信息,比如程序进入到了catch 语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn 高一级。
Shift+F10查看打印信息
Log.d(当前类名,”打印的话”)
隐藏原生状态栏
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
Android之网络图片加载的5种基本方式
HttpURLConnection:
HttpClients
XUtils
OkHttp
Volley
存储单位
在计算机/通讯行业中,计算数据传送速度也使用每秒传送公制数据量来计算
1 bit (b) = 0 or 1 = one binary digit 一个二进制位元
1 kilobit(kb)=10^3 bits = 1,000 bits 一千位元
1 Megabit(Mb)=10^6 bits = 1,000,000 bits 一百万位元
1 Gigabit(Gb)=10^9 bits = 1,000,000,000 bits 一万亿位元
根据进制规定,传送速度可以有两种表示方法 bps 和 Bps,但是他们是有严格区别。Bps中的 B 使用的是二进制系统中的Byte字节 ,bps中的 b 是十进制系统中的位元。
在我们常说的56K拨号,100M局域网都是bps计量,当用于软件下载时,下载工具一般又以Bps计算,所以它们之间有 8 bit=1 Byte 的换算关系,那么56Kbps拨号极限下载速度是 56Kbps/8=7KBps 每秒下载7K字节 。
在数据存储,容量计算中,一般又结合公制的进制和二进制的数据计算方法来计算
(二进制)
1 byte (B) = 8 bits (b) 字节=8个二进制位
1 Kilobyte(K/KB)=2^10 bytes=1,024 bytes 千字节
1 Megabyte(M/MB)=2^20 bytes=1,048,576 bytes 兆字节
1 Gigabyte(G/GB)=2^30 bytes=1,073,741,824 bytes 千兆字节
1 Terabyte(T/TB)=2^40 bytes=1,099,511,627,776 bytes吉字节
一些存储器厂家特别是硬盘厂家就更紧密结合十进制来计算,这就是为什么操作系统显示的容量与厂家标示的容量有些一些差异的原因
(十进制)
1 byte (B) = 8 bits (b)0
1 Kilobyte (K / KB) = 10^3 bytes = 1,000 bytes
1 Megabyte (M / MB) = 10^6 bytes = 1,000,000 bytes
1 Gigabyte (G / GB) = 10^9 bytes = 1,000,000,000 bytes
1 Terabyte (T / TB) = 10^12 bytes = 1,000,000,000,000 bytes
eclipse最有用快捷键整理
Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+M 添加类的import导入
Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)
Ctrl+Y 重做(与撤销Ctrl+Z相反)
Alt+/ 内容辅助(帮你省了多少次键盘敲打,太常用了)
Ctrl+D 删除当前行或者多行
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Ctrl+/ 注释当前行,再按则取消注释
选择
Alt+Shift+↑ 选择封装元素
Alt+Shift+← 选择上一个元素
Alt+Shift+→ 选择下一个元素
Shift+← 从光标处开始往左选择字符
Shift+→ 从光标处开始往右选择字符
Ctrl+Shift+← 选中光标左边的单词
Ctrl+Shift+→ 选中光标又边的单词
移动
Ctrl+← 光标移到左边单词的开头,相当于vim的b
Ctrl+→ 光标移到右边单词的末尾,相当于vim的e
搜索
Ctrl+K 参照选中的Word快速定位到下一个(如果没有选中word,则搜索上一次使用搜索的word)
Ctrl+Shift+K 参照选中的Word快速定位到上一个
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在状态栏中显示没有找到了,查一个单词时,特别实用,要退出这个模式,按escape建)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+U 列出所有包含字符串的行
Ctrl+H 打开搜索对话框
Ctrl+G 工作区中的声明
Ctrl+Shift+G 工作区中的引用
Android开发手册相关推荐
- 阿里巴巴Android开发手册(正式版)
去年有个阿里巴巴java开发手册,今年有了Android了.. 下载链接: 阿里巴巴Android开发手册
- 《阿里巴巴Android开发手册》正式发布
春意盎然之际,阿里巴巴再度为工程师送上一份重磅开春好礼:<阿里巴巴Android开发手册>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希望帮助开 ...
- 《阿里巴巴Android开发手册》v1.0.1更新,优化部分内容和示例代码
摘要: 春节余味尚未消,我们为移动开发者准备了一份迟到的新年礼物--<阿里巴巴Android开发手册>,继<阿里巴巴Java开发手册>之后,阿里巴巴开发规范家族又添一丁,「阿里 ...
- 《阿里巴巴Android开发手册》正式发布,献给移动开发者的新年礼物
春节余味尚未消,我们为移动开发者准备了一份迟到的新年礼物--<阿里巴巴Android开发手册>,继<阿里巴巴Java开发手册>之后,阿里巴巴开发规范家族又添一丁,「阿里巴巴An ...
- android命名规范阿里,阿里android开发手册 PDF 下载
主要内容: 二.Android 资源文件命名与使用 1. [推荐]资源文件需带模块前缀. 2. [推荐]layout 文件的命名方式. Activity 的 layout 以 module_activ ...
- 重磅开源!《阿里巴巴Android开发手册》抢鲜下载!
春意盎然之际,阿里巴巴再度为工程师送上一份重磅开春好礼:<阿里巴巴Android开发手册>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希望帮助开 ...
- T语言与快速开发平台之天宇联Android开发手册
天宇联Android开发手册 ttyu.common通用类 方法 说明 GetFunctionValue(stringdataMember) 获取方法的值 RunFunctions(stringfor ...
- 阿里巴巴Android开发手册
Android开发福音 阿里巴巴Android开发手册下载链接:点击打开链接
- 《阿里巴巴 Android 开发手册》(一)
<阿里巴巴 Android 开发手册>(一) 手册下载地址 相关文章链接 <阿里巴巴 Android 开发手册>(一) <阿里巴巴 Android 开发手册>(二) ...
- 开放下载!《阿里巴巴Android开发手册》正式发布
春意盎然之际,阿里巴巴再度为工程师送上一份重磅开春好礼:<阿里巴巴Android开发手册>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希望帮助开 ...
最新文章
- 人工智能及其应用(第5版).蔡自兴-1章课后习题。【暂时无答案】
- 28. extjs中Ext.BLANK_IMAGE_URL的作用
- Vim 4 常用插件
- Python中出现:AttributeError: module 'numpy' has no attribute 'dtype'问题解决
- Java SE 基础知识(一)
- mysql 创建唯一索引_Mysql普通索引和唯一索引的选择分析
- Kubernetes在游戏业务应用调研
- C语言scanf输入a3,【C语言】04 printf和scanf函数
- XP下安装ubuntu双系统
- java.sql.ResultSet
- php调用empty报错
- sql2000 sp3、sql2000 sp4升级补丁下载和安装须知:
- glide 压缩图拍呢_Glide-图片的压缩
- HTML中font标签中size属性值对应的像素大小
- centos7:glibc:configure: error: no acceptable C compiler found in $PATH
- 聊聊追求测试技术导致过度测试
- 【C语言航路】第一站:初识C语言(四)
- 美名腾智能起名系统有了新界面
- adjacent angle_帝学教育:新SAT数学词汇中英文对照(几何篇)
- VMware Esxi补丁包手工执行升级