好了,大概的运行了第一什么都没有的android
studio程序之后。现在要真刀真枪来了。
首先是修改app图标http://jingyan.baidu.com/article/6181c3e0bb707e152ef15330.html
不过我不打算修改它。所以放在这里跳过
接下来,按android studio的步骤开虚拟机(到时候会显示项目名helloworld)并且在主页可以找到一个android小机器人的图标。
怎么一行还没写,项目就已经运 行起来了?这个只能说是因为 ADT太智能了,已经帮我们把一些简单内容都自动生成了。
在project里看到app这个目录下的这些目录
毫无疑问,src目录是放置我们所有 Java代码的地方,它在这里的含义和普通 Java 项目下的 src目录是完全一样的,展开之后你将看到我们刚才创建的 HelloWorldActivity 文件就在里面。
可以双击shift键来查找R.java,在里面输入R.java。(看到目录后发现它放的是真的深。。。。)主要有一个 R.java文件,你在项目中添加的任 何资源都会在其中生成一个相应的资源 id。这个文件永远不要手动去修改它。
studio和eclipse是不一样的,eclipse调试的时候会生成apk文件,studio是不生成的,如果你需要apk,在菜单的build下可以生成apk,
菜单Build->Generate Signed APK 即可
android studiojar包放在哪里?(目前。。我还没用过jar包,先记下来吧)
这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖。如下:
dependencies {
compile 'com.android.support:support-v4:19.1.0'
compile files('libs/libammsdk.jar')
compile files('libs/universal-image-loader-1.8.6-with-sources.jar')
compile files('libs/YoumiSdk_v5.00_2015-01-08.jar')
}
- 目录中将 java 代码和资源文件(图片、布局文件等)全部归结为 src,在 src 目录下有一个 main 的目录,同时划分出 java 和 res 两个目录, java 目录则相当于 Eclipse 下的 src 目录,res 目录结构则一样。
- java 目录:放置所有 java 代码,展开后可以看到刚才创建的 HelloWorldActivity 文件。
- res 目录:放置项目中使用到的所有图片、布局、字符串等资源,后面再详细说明。
- libs 目录:放置项目中使用的第三方包,后面用到的时候再详细说明。
- AndroidManifest.xml:整个项目的配置文件,在程序中定义的所有四大组件都需要在这个文件里注册。后面用到的时候再详细说明。
- gen
- assets
- bin
- project.properties
这些在 Android Studio 创建的项目中并没有找到,但是他们都有对应的目录或文件,后面用到的时候再详细说明。
我使用emptyactivity,因为没有blankactivity。
首先打开
AndroidManifest.xml
文件,从中可以找到如下代码:
<activity android:name=".HelloWorldActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
这段代码表示对 HelloWorldActivity这个活动进行注册, 没有在 AndroidManifest.xml里 注册的活动是不能使用的 intent-filter里的两行代码非常重要<action android:name="android.intent.action.MAIN" />表示 HelloWorldActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这 个活动。<category android:name="android.intent.category.LAUNCHER" />
活动是 Android应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。因此刚才看到的helloworld就是这个活动干的事情
打开 HelloWorldActivity.java
之后可以看到,as自动帮我们生成的代码了public class HelloWorldActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_world); } }首先我们可以看到,HelloWorldActivity是继承自 Activity的。Activity是 Android系统提 供的一个活动基类,我们项目中所有的活动都必须要继承它才能拥有活动的特性onCreate() 方法是一个活动被创建时必定要执行的方法。Android 程序的设计讲究逻辑和视图分离。其中第二行调用了 setContentView() 方法,
这个方法为当前活动引入了一个 activity_hello_world 布局,用来显示当前活动的视图。
onCreate() 方法是一个活动被创建时必定要执行的方法。Android 程序的设计讲究逻辑和视图分离。其中第二行调用了 setContentView() 方法,这个方法
为当前活动引入了一个 activity_hello_world 布局,用来显示当前活动的视图。
在 onCreate()方法的第二行调用了 setContentView()方法,就是这个方法给当前的活动引入了一 个
那 Helloworld!一定就是在这里定义的了!activity_hello_world布局,
activity_hello_world.xml下面会有这段代码
布局文件都是定义在 res/layout 目录下的,找到并打开文件(注意切换下面的text才会显示代码)
,找到如下代码:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_hello_world" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.hasee.helloworld.HelloWorldActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> </RelativeLayout> 找到了哈哈。 看到TextView,这是 Android系统提供的一个控件,用于在布局中显示文字的。 另外发现res文件夹的内容并不能与第一行代码以及大神的单刷对应, strings.xml是不存在的 ,怕不是有更新。。 附上图片 后来发现自己找错了。。。。。 在这里