本文围绕以下八个部分展开:

一、Android系统各版本及与API号对应关系
二、Android系统各版本Logo
三、Eclipse和Android Studio中工作区、项目及引用的对应关系
四、Android Studio中项目(module)的新建和删除
五、Android四种应用组件简介
六、Android App开发流程
七、Android apk的构建过程
八、Android Studio项目目录及代码介绍






一、Android系统各版本及与API号对应关系

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第1张图片


二、Android系统各版本Logo

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第2张图片


三、Eclipse和Android Studio中工作区、项目及引用的对应关系

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第3张图片


四、Android Studio中项目(module)的新建和删除

1.新建项目

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第4张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第5张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第6张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第7张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第8张图片

2.删除项目

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第9张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第10张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第11张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第12张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第13张图片


五、Android四种应用组件简介

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第14张图片


六、Android App开发流程

1. 配置开发环境(Android Studio)
2. 开发App
3. 调试
建议使用真机进行调试。调试之前:
(1)在计算机上,给真机安装USB驱动;
(2)开启“开发者选项”(点击7次“内部版本号”);(附:点击7次“Android版本”,会进入“彩蛋”。)
(3)开启“USB调试”。
4. 发布


附:通过命令行把apk安装到真机/模拟器

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第15张图片

这种方式不安全(很容易中病毒等)。建议到官方Android App市场去下载安装。


七、Android apk的构建过程

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第16张图片

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第17张图片

详细的构建过程如下:

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第18张图片

具体构建过程如下:
(1)aapt生成R.java
(2)aidl生成相应的java文件
(3)javac编译源文件生成class文件
(4)dx转换class为classes.dex
(5)aapt生成资源包文件resources.arsc
(6)apkbuilder打包资源和dex生成未签名的apk
(7)jarsigner签名apk生成签名apk
(8)zipalign优化签名后的apk

其中用到的构建工具介绍如下:

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第19张图片


八、Android Studio项目目录及代码介绍

1. Android Studio项目目录

【攻克Android (2)】Android各版本、app开发流程、apk构建过程_第20张图片

附:res文件夹里面的,都会编译成十六进制数放入R.java文件中,这样在调用的时候,就会快一些。

2. 项目基础代码介绍

(1)AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>   <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.xiangdong.i18nscreen" >   <!--xmlns: xml name space 命名空间       表示里面所有的命名,都必须符合Android的命名规范   -->          <!--应用程序       allowBackup 允许备份数据       icon  App图标       label App名字       theme 主题风格(类似于Web程序的css)       -->       <application           android:allowBackup="true"           android:icon="@mipmap/ic_launcher"           android:label="@string/app_name"           android:theme="@style/AppTheme" >           <!--活动(界面)           MainActivity 主活动(主界面),类似于index.jsp(首页)            android:name=".MainActivity"            如果换成其他Activity,则启动的时候,主界面就成为了其他Activity。           label 标题栏上的文本           -->           <activity               android:name=".MainActivity"               android:label="@string/app_name" >               <!--意图过滤器 (必须有)-->               <intent-filter>                   <!--动作:启动主界面的入口 (相当于java中的main方法)-->                   <action android:name="android.intent.action.MAIN" />                   <!--类别:启动主界面。   launcher(启动)-->                   <category android:name="android.intent.category.LAUNCHER" />               </intent-filter>           </activity>       </application>      </manifest> 


(2)MainActivity.java

 package com.xiangdong.i18nscreen;      import android.support.v7.app.ActionBarActivity;   import android.os.Bundle;   import android.view.Menu;   import android.view.MenuItem;      /**   * 主活动 (主界面) 类似于首页   */   public class MainActivity extends ActionBarActivity {          /**       * 第一次启动活动时,创建界面       * @param savedInstanceState 保存实例状态       */       @Override       protected void onCreate(Bundle savedInstanceState) {           // 显式调用父类的创建方法(保留activity状态)           super.onCreate(savedInstanceState);           // 加载布局文件           setContentView(R.layout.activity_main);       }             /**       * 创建可选菜单       * @param menu       * @return       */       @Override       public boolean onCreateOptionsMenu(Menu menu) {           // Inflate the menu; this adds items to the action bar if it is present.           // 填充菜单,加入菜单选项           getMenuInflater().inflate(R.menu.menu_main, menu);           // 返回true:菜单可见           return true;       }          /**       * 选中菜单选项的事件       * @param item       * @return       */       @Override       public boolean onOptionsItemSelected(MenuItem item) {           // Handle action bar item clicks here. The action bar will           // automatically handle clicks on the Home/Up button, so long           // as you specify a parent activity in AndroidManifest.xml.           int id = item.getItemId();              //noinspection SimplifiableIfStatement           if (id == R.id.action_settings) {               return true;           }              return super.onOptionsItemSelected(item);       }   }  

更多相关文章

  1. Android应用程序窗口View的创建过程
  2. Android 应用程序发布流程注意事项(整理)
  3. 全屏显示布局随机图片的显示
  4. android 图片内存溢出
  5. Android实现图片随意拖动、缩放
  6. Android图片双指缩放,单指移动实现
  7. android 获取assets下的图片
  8. 一起学android之给图片添加水印效果(33)
  9. android获取资源文件R.drawable中的图片的相关方法

随机推荐

  1. android应用 小试牛刀 开发自己的应用程
  2. 屏幕切换时Activity重启问题
  3. 利用android studio制作简易的计算器
  4. 下载Android 5.0源码(附源码)
  5. Android滑动菜单框架完全解析,教你如何一
  6. 【新提醒】N820 N821 android 4.2 V1.1版
  7. 【Android开源项目分析】android轻量级开
  8. Gsensor的整个系统架构
  9. Android里的观察者模式应用
  10. Android,iPad minis点燃了平板市场