android 01
安卓开源(就是免费),谷歌收购后推出,可以山寨(小米,三星都是安卓的山寨),ios不是开源(苹果应用要商用就要交钱)。安卓3.0是平板,现在安卓至少是4.0以上,否则out了。
微软主要是系统和office赚钱。
应用:平板、手机、笔记本、智能家电(android智能电视,android微波炉、android洗衣机、android智能手环、导航)
小米系统是MIUI是andriod的山寨,2014年成为全球第三大手机供应商,中国第一大手机供应商。
阿里云系统也是android系统。
印度外包做的最大。 安卓分为4层:
最上层应用开发层:邮件开发。
框架层:java写的,封装了类库层,c语言做java语言的封装。
类库和安卓运行时层:c语言写的,C语言运行效率高。
最底层是linux,用c语言,做驱动的开发。 SDK:软件开发工具包。 API:接口。 ART:安卓runtime。 apk:安卓package,压缩包,可以反编译成.jar文件,放在安卓手机上就可以用了。 dex:虚拟机可执行程序,就像windown的exe文件,包含在apk里面,dex是apk里面的可执行文件。
adt:安卓development库,安卓开发工具,一个插件。
app:application. 安卓5.,2014年10月发布,使用Material Design设计语言设计UI.支持64位操作系统。现在很多手机都是64位,64位运行效率高,内存要求大,内存要4G. 现在谷歌的网站只有翻墙才能访问。 下载adt-bundle-windows-x86_64-.zip这是最新的。这个是64位,是安卓4.4w,是最新的。 genymotion:安卓第三方模拟器。 环境变量:
ANDROID_SDK_HOME = D:\adt5.\sdk
Path = %ANDROID_SDK_HOME%\tools;%ANDROID_SDK_HOME%\tools
android -h 判断sdk是否安装成功 AVD:模拟器 新建模拟器:
RAM:模拟的手机内存512M vm heap:模拟虚拟机堆64M Internal Storage:模拟的手机存储卡200M, SD Card:模拟的手机SD卡300M,
模拟器创建好了以后目录:D:\andriod\newfile\ad5_0\sdk\.android
然后在AVD框中启动模拟器。
activity:当前一个屏幕的java类,
MainActivity:程序的第一个入口类
activity_main:给activity设置布局文件,activity屏幕的布局。
appcompat_v7:兼容包,安卓高版本能跑在安卓低版本机器上。
src文件夹:自己的类
R.java:res资源文件的目录,只读的。
libs文件夹:第三方jar包,微信jar,百度地图的jar,外接的包复制进libs文件夹,则在Android Private Libraries会同步出现。
assets文件夹:安卓原生资源,音频视频图片
bin文件夹:binary(二进制),系统生成的2进制的文件。
res文件夹:resource,drawable-hdpi下面可以放一些静态图片和动画。
h是high的意思,hdpi是高分辨率(每英寸有240个像素点),ldpi:低分辨率(每英寸有120个像素点),mdpi:中分辨率(标准分辨率,每英寸有160个像素点),xhdpi:比hdpi还高的分辨率(每英寸有320个像素点),xxhdpi:比xhdpi更高的分辨率(每英寸有440个像素点)。
因为安卓厂商的不同手机的分辨率不一样,为了适配不同分辨率的手机,所以设置文件夹适配不同的手机。
res下的layout文件夹显示UI上的控件的摆放方式,activity_main.xml就是MainActivity类对象的视图。 menu文件夹:设置菜单资源 values文件夹:是设置各种值的,dimens.xml设置距离的,strings.xml设置字符串资源的。styles.xml设置风格的。
activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" 宽度跟父容器一样,也可以是300px,300dp
android:paddingBottom="@dimen/activity_vertical_margin" 内部间距像素
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.helloworid.MainActivity" >
<!-- RelativeLayout相对的布局,使用频率很高,跟父容器定位, -->
<TextView 只读文本
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" /> 直接写不利于国际化 </RelativeLayout>
R.java:为res文件夹下的图片、布局、菜单、数据资源建立的索引。每一个资源都是通过一个常量标识的,便于其他地方引用这个资源。如果没有R.java则java代码是无法访问这些资源的,
R.java
package com.sxt.day01_01; public final class R {//内部类表示不同的资源
public static final class attr {
}
public static final class dimen {//dimens.xml public static final int activity_horizontal_margin=0x7f040000;
public static final int activity_vertical_margin=0x7f040001;
}
public static final class drawable {//对应drawable文件夹
//所有的ic_launcher.png(点击可以进入查看图片),后面是16进制的值,唯一值,自动生成的。
//类的首字母不是大写,
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int action_settings=0x7f080003;
public static final int btnLogin=0x7f080002;
public static final int et=0x7f080001;
public static final int textview1=0x7f080000;
}
public static final class layout {//对应layout文件夹
public static final int activity_main=0x7f030000;
}
public static final class menu {
public static final int main=0x7f070000;//menu文件夹下的main.xml
}
public static final class string {
public static final int action_settings=0x7f050001;//values文件夹下的strings.xml里面的一个变量
public static final int app_name=0x7f050000;
public static final int hello_world=0x7f050002;
}
public static final class style { public static final int AppBaseTheme=0x7f060000; public static final int AppTheme=0x7f060001;
}
}
dp:独立于设备,标准分辨率下,1dp=1px,高分辨率下1dp=240/160=1.5px,低分辨率下1dp=120/160=0.75px,
px:像素,
sp:独立于设备,和dp差不多,表示文字的大小。
推荐:距离用dp,文字大小用sp。 EditText:有交互的文本交互框,可以修改,TextView只能看不能修改,EditText继承TextView,TextView的属性EditText都有,
activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"> <TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="50px"
android:text="@string/hello_world"
android:textColor="#000"
android:textSize="30sp"
android:visibility="visible"/>
<EditText //可以滚屏
android:id="@+id/et"
android:layout_below="@id/textview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入登陆密码"
android:textSize="20sp"
android:textColor="#ccc"
android:cursorVisible="false" //光标是否可见
android:editable="false"/> //是否可编辑
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登陆"
android:drawableLeft="@drawable/ic_launcher" //按钮设置图片,图片在左边,文字在右边,drawableTop:上图下字,drawableRight:右图左字
android:layout_alignParentBottom="true"/>
</RelativeLayout>
android 01的更多相关文章
- 用Kotlin创建第一个Android项目(KAD 01)
原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...
- Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录
一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...
- Android游戏开发实践(1)之NDK与JNI开发01
Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01
1.系统联系人的数据库(3张最重要的表) (1)raw_contacts 联系人表 保存联系人的id contact_id (2)data 数据表 保存联系人的数据 ( ...
- 第01讲- Android背景知识
第01讲Android背景知识 Android是基于Linux系统 Android系统框图 : 第一.操作系统层(OS) 第二.各种库(Libraries)和Android 运行环境(RunTime) ...
- Android Service总结01 目录
Android Service总结01 目录 1 Android Service总结01 目录 2 Android Service总结02 service介绍 介绍了“4种service 以及 它们的 ...
- Android 数据存储01之SharedPreferences
Android 数据存储01之SharedPreferences 版本 修改内容 日期 修改人 V1.0 原始版本 2013/2/20 skywang 1 SharedPreferences概括 Sh ...
- ZT ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01
ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01 分类: 嵌入式 android framework 里java调用native,使用JNI机制,ja ...
随机推荐
- AngularJS: 自定义指令与控制器数据交互
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- linux下配置NFS服务器
(声明:本文大部分文字摘自Linux NFS服务器的安装与配置) 一.NFS简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Su ...
- bzoj 1045: [HAOI2008] 糖果传递 贪心
1045: [HAOI2008] 糖果传递 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1812 Solved: 846[Submit][Stat ...
- <jsp:forward>、requestDispatcher和sendRedirect()的区别
1.会话信息保存在服务器内存上,可以断续访问,和cookie相比,其保存在服务器上. 2.男人就像蓝牙:只有在你接近时,他才会找上你.当你离开后,他便又去找其他的"设备"了.女人就 ...
- ASP 验证、查询AD域账户信息
'''函数功能:查询域用户信息 '''参数说明:strAdmin-域管理账户:Password-域帐户密码:Domain-域服务器. ''' ''' 参考资料:http://www.experts-e ...
- MySQL协议简单分析
tcpdump -i eth0 -s0 -l -w - port 3306|strings|grep -i -E 'select|update|insert|delete|set'
- PYTHON文本处理指南之日志LOG解析
处理特定字段的内容,并指指定条件输出. 注意代码中用一个方法列表,并且将方法参数延后传递. GOOGLE作过PYTHON代码的水平,就是不一样呀. 希望能学到这种通用的技巧. 只是,英文PDF看起来有 ...
- Hadoop上结合opencv\javacv
mac上安装opencv 1. 去 http://opencv.org 下载最新版OpenCV for Linux/Mac源文件,目前版本是2.4.3.下载后解压.2. 去 http://www.cm ...
- Android listView scroll 恢复滚动位置
相信大家尝试过许多方法恢复滚动位置,本人也找了许多方法,唯有这个方法好用,下面把代码贴出来 声明两个变量 private int mPosition; private int lvChildTop; ...
- bzoj1041
基于圆的对称性,我们只需要考虑第一象限的整点即可满足条件的x,y都是整数数学上这类问题我们通常用一个量表示另一个量y^2=(r-x)(r+x) (r-x)(r+x)要是完全平方数令d=gcd(r-x ...