安卓系统采用分层架构,由高到低分为四层:应用程序层–应用程序框架层–核心类库和Linux内核
安卓应用程序主要开发语言为Java,通过Dalvik虚拟机来运行Java程序。
dex文件比jar更加紧凑,但是为了在运行过程中进一步提高性能,dex文件还会进一步优化为odex文件
配置安卓环境前,确保已经配置好Java环境变量。
1.新建系统变量:
变量名:ANDROID_SDK_HOME
变量值:Sdk的安装路径
File–New–Module
注意:在一个studio窗口中只能有一个project–项目;一个项目中可以有多个module
所有的资源存放在:app–build–generated–not_namespaced_r_class_sources–debug–r--com–example–项目名–R.java文件中
getResources().getDrawable(R.mipmap.ic_launcher);
<TextView
android:background="@mipmap/ic_launcher"
android:background="@drawable/icon"/>
<resources>
<!-- Base application theme. -->
<!--主题-->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
注意:根标签resources中可以包含多个style标签,style中可以包含多个item标签
setTheme(R.style.AppTheme);
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<application
……………………………………
android:theme="@style/AppTheme">
</application>
</manifes>
<resources>
<!--样式-->
<style name="textViewStyle">
<item name="android:layout_width">20dp</item>
<item name="android:layout_height">20dp</item>
<item name="android:background">#f54e39</item>
</style>
</resources>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<TextView
……
style="@style/textViewStyle"
…… />
</androidx.constraintlayout.widget.ConstraintLayout>
app-src-main-res-layout-.xml-text该目录存放的是程序中所有的布局资源文件
setContentView(R.layout.activity_main);
<include layout="@layout/activity_main"/>
<resources>
<string name="app_name">My FirstApplication</string>
</resources>
getResourcea().getString(R.string.app_name);
android:text="@string/app_name"
<resources>
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
</resources>
getResources().getColor(R.color.colorPrimary);
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<TextView
……
android:textColor="@color/colorPrimary"
…… />
</androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen>
</resources>
getResources().getDemension(R.dimen.activity_horizontal_margin);
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<TextView
……
android:layout_width="wrap_content"
android:layout_height="@dimen/activity_horizontal_margin"
…… />
</androidx.constraintlayout.widget.ConstraintLayout>
LogCat的使用
输出的日志内容的6个级别(低->高) | 对应静态方法 | 标注 |
---|---|---|
Verbose | Log.v() | 全部信息–黑色 |
Debug | Log.d() | 调试信息–蓝色 |
Info | Log.i() | 一般信息–绿色 |
Waring | Log.w() | 警告信息–橙色 |
Error | Log.e() | 错误信息–红色 |
Assert | Log.wtf() | 断言失败后佛如错误信息–红色 |
package com.example.myfirstapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("MainActivity","Verbose");
Log.d("MainActivity","Debug");
Log.i("MainActivity","Info");
Log.w("MainActivity","Waring");
Log.e("MainActivity","Error");
Log.wtf("MainActivity","Assert");
}
}