安卓基础笔记

安卓主要由四层构成: Applications 应用程序层 ApplicationFramework 程序框架层 Libraries 核心类库 LinuxKernel Linux内核各目录作用:add-ons android拓展库docs android相关文档extras android附加支持文件(驱动)platforms androidSDK相关文件platform-tools ...
摘要由CSDN通过智能技术生成
安卓主要由四层构成:
Applications 应用程序层
ApplicationFramework 程序框架层
Libraries 核心类库
LinuxKernel Linux内核


各目录作用:
add-ons android拓展库
docs android相关文档
extras android附加支持文件(驱动)
platforms androidSDK相关文件
platform-tools 存放工具平台
samples SDK自带的默认示例工程
sources api源代码
system-images 系统中用到的图片
temp 系统中临时文件
tools 各类工具


(android调试桥)ADB工具常用命令:
adb start-server 开启adb服务
adb device 列出可用的模拟器
adb logcat 查看日志
abd kill-server 关闭服务
adb shell 挂载到linux的空间
adb install <应用程序> 安装应用程序
adb -s <模拟器名称> install <应用程序> 安装到指定的模拟器
adb uninstall <程序包名> 卸载指定的应用程序


ApplicationName 应用名称
ProjectName 项目名
PackageName 包名
minimumRequiredSDK 最兼容的版本
TargetSDK 最匹配的版本
compilewith 那个版本SDK进行编译
Theme UI主题


src  所有java代码的地方
geb 自动生成R.java文件
Android4.1.1 用的SDK文件
assets 用于存放一些随陈旭打包的文件
bin 生成apk文件测试包
libs jar包
res 图片,布局,字符串
androidmanifese.xml 重新编译最高最低版本
proguardproject.txt 混淆代码工具
project.properties 安卓运行环境


MainActivity.java 文件
public class MainActivity extands Activity{
protected void oncreate(Bundle s){
super.onCreate(s); //记住布局
setContentView(R.layout.UI); //打开布局
}
}


布局的类型
一、相对布局(RelativeLayout)
android:layout_alignParentLeft 是否跟父布局左对齐
android:layout_alignParentTop 是否跟父布局顶部对齐
android:layout_alignParentRight 是否跟父布局右对齐
android:layout_alignParentBouttom 是否跟父布局底部对齐
android:layout_toRightOf 在指定控件右边
android:layout_toLeftOf 在指定控件左边
android:layout_above 在指定控件上边
android:layout_below 在指定控件下边
android:layout_alignBaseline 与指定控件水平对齐
android:layout_alignLeft 与指定控件左对齐
android:layout_alignRight 与指定控件右对齐
android:layout_alignTop 与指定控件顶部对齐
android:layout_alignBottom 与指定控件底部对齐
二、线性布局(LinearLayout)
android:orientation="vertical"; 垂直布局
android:orientation="horizontal"; 水平布局
三、表格布局(TableLayout)
TableRow 行数对象
android:stretchColumns="n" 为第多少列拉伸
android:layout_column="n" 列数属性
四、网格布局(GridLayout)
android:layout_gravity 对齐方向
android:columnCount="n" 网格列数
android:layout_column="n" 该控件在第几列
android:layout_rowSpan="n" 该控件占几行
android:layout_columnSpan 该控件占几列
五、帧布局(FrameLayout)
android:layout_width="dp" 占据的宽度
android:layout_height="dp" 占据的长度
六、绝对布局(AbsoluteLayout)
android:layout_x="dp" 所在横坐标的位置
android:layout_y="dp" 所在纵坐标的位置




各类控件属性
TextView 文本控件
EditText 编辑框
Button 普通按钮
RadioButton 单选按钮
android:drawableTop="@android:drawable/ic_med"设置文字上方的图片
ProgressBar 进度条(不可更改)
SeekBar 进度条(可通过滑动更改)
style="?android:attr/progressBarStylrHorizontal"设置进度条为条形(还有环形进度条)
OnSeekBarChangeListener //监听滑块位置
setMax() //设置进度条最大值
setProgress() //设置当前进度
getProgress() //获取当前进度
ListView 列表框
android:cacheColorHint //设置拖动的背景色
android:divider //设置分界线
android:dividerHeight //设置分割线高度
android:listSelector //设置选中时颜色
android:scrollbars //设置滚动条
android:fadeScrollbars //是否自动隐藏显示
样式调用:style="@style/TextStyle"
环境测试
一、Junit
<application><uses-library android:name="android.test.runner"/></application>
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="需要测试的包名称" />
assertEquals(期望值,真实值);
开始测试:Run As→Android Junit Test
二、LogCat
五种级别:Verbose黑色、Debug蓝色、Info绿色、Warming橙色、Error红色
Log.v||d||i||w||e显示全部信息||显示调试信息||一般信息||警告信息||错误信息显示
三、Toast
Toast.makeText(javaname.this,"信息",0||1).show();0表示短,1表示长


事件:
onKeyDown(int,event)对应键按下事件
onKeyUp(int,event)对应键松开事件
onTouchEvent(event)对应点击屏幕事件


Activity生命周期:
onCreate(Bundle s) 创建时执行
onStart() 可见时执行
onRestart() 回到前台,再见到时执行
onReause() 获取焦点时执行
onPause() 失去焦点时执行
onStop() 用户不可见进入后台时执行
onDestroy() 销毁时执行


不希望横竖屏幕时Activity被重建
android:configChanges="orientation|keyboardHidden|screenSize"
一直处于竖屏
android:screenOrientation="portrait"
一直处于横屏
android:screenOrientation="landscape"


点击事件的四种方法:
onClick指定方法名称


创建内部类实现OnClickListener接口
{...
b.setOnClickListener(new m());
}
private class m implements OnClickListener{
public void onClick(View v){
switch(v.getId()){
case R.id.b:
点击事件
break;
}
}
}


主类中实现OnClickListener
主类 implements OnClickListener
{...
b.setOnClickListener(this);
}
public void onClick(View v){
switch(v.getId()){
case R.id.b:
点击事件
break;
}
}


匿名内部类:
{...
b.setOnClickListener(
new OnClickListener(){
public void onClick(View v){
点击事件
}
}
);
}


Activity的启动模式:
<activity>中,设置android:launchMode="standard||singleTop||singleTask||singleInstance"
分别表示:默认启动方式,完全新建||重复利用||重用删上||重用仅存


Intent的调用:
显示调用(主要用于打开本应用Activity):
Intent i.setClassName("包名","包名+class名称");//异包调用
startActivity(i);//开启Activity


Intent i=new Intent(this,b.class); //同包调用
i.putExtra("key","value"); //传递字符串值
startActivity(Intent i); //打开这个Intent


Intent ii=getIntent();
String data=ii.getStringExtra("key");//调用的包中取出数据
如果传递多个数据,利用putExtras(Bundle);传递数据,Bundle.putString||Int("key","value")
多个数据接收,Intent ii=getIntent();
Bundle data=ii.getStringExtras();
String n=data.getString("key")




隐式调用(主要用于打开其他应用组件,自己的也可以):
清单文件中<intent-filter>
<action android:name="包名+class名称">
<category android:name="android.intent.category.DEFAULT" />
//默认的category会自动将这个category添加到Intent中
</intent-filter>
Intent i=new Intent();
i.setAction("name");
startActivity(i);//开启Activity


Intent回传数据
Intent i=new Intent(this,b.class);
startActivityForResult(Intent i,int n); //Intent,请求码


protected void onActivitResult(int requestCode,int resultCode,Intent data){
super.onActivityRequest(requestCode,resultCode,data);
String data=data.getStringExtra("key");
}


另一个java中
Intent i=new Intent();
i.putExtra("key","value"); //传输的密码和内容
setResult(int n,Intent i); //结果码,intent
finish(); //销毁当前Activity


数据存储的五种方式:


文件储存:以IO流的形式储存在本地文件中,分为内部储存,和外部储存。
内部储存:放在data/data/packagename/files/目录下,应用卸载时与之同炬
主要的方法:
openFileOutput(String name,int mode); //储存文件名,模式
MODE_PRIVATE只能被该文件读写
MODE_APPEND该文件内容可以追加
MODE_WORLD_READABLE可被其他文件读取
MODE_WORLD_WRITEABLE可被其他应用写入
openFileInput(String name); //打开的文件名称


外部储存:放在mnt/sdcard/目录下,属于永久储存
主要的方法:
Environment.getExternalStorageDirectory() //获取SD卡根目录
String Environment.getExternalStorageState() //检测外围设备是否可用
String n=Environment.getExternalStorageState()
n.equals(Enviroment.MEDIA_MOUNTED||BAD_REMOVAL||CHECKING)//以挂载||没挂载||正在检查


外部储存需要的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />//写
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />//读


序列化:
XmlSerialize X=Xml.newSerializer(); //创建XmlSerializer对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值