`
XiangdongLee
  • 浏览: 91323 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

阅读更多
本文围绕以下八个部分展开:

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






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




二、Android系统各版本Logo




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




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

        1.新建项目











        2.删除项目












五、Android四种应用组件简介




六、Android App开发流程

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


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



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


七、Android apk的构建过程





        详细的构建过程如下:



        具体构建过程如下:
        (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 Studio项目目录及代码介绍

        1. Android Studio项目目录



        附: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);  
     }  
 }  
  • 大小: 109.4 KB
  • 大小: 167 KB
  • 大小: 5.2 KB
  • 大小: 15.3 KB
  • 大小: 40 KB
  • 大小: 31.5 KB
  • 大小: 60.9 KB
  • 大小: 25.8 KB
  • 大小: 20.8 KB
  • 大小: 36.9 KB
  • 大小: 29.8 KB
  • 大小: 28.2 KB
  • 大小: 33 KB
  • 大小: 27.1 KB
  • 大小: 14.2 KB
  • 大小: 40.9 KB
  • 大小: 165.9 KB
  • 大小: 122.5 KB
  • 大小: 240 KB
  • 大小: 29.9 KB
分享到:
评论

相关推荐

    Android开心词场app

    - **开发环境**:配置必要的开发环境变量,安装Android SDK及相关插件,确保开发过程中能够顺利运行模拟器或真机调试。 #### 三、软件设计与需求分析 - **Android四大组件**:Activity、Service、...

    如何深入学习Android Framework.pdf

    2. **工具技能**:除了编程语言之外,还应该掌握一些开发工具的使用,比如Git版本控制工具、ADB命令行工具等。对于源码管理工具,如r (repo) 也需要有一定的了解。 3. **核心模块**:重点学习的核心模块包括但不...

    Linux下的开发入门与难点攻克

    ### Linux下的开发入门与难点攻克 #### Linux作为开发平台的重要性 Linux系统因其开源特性与卓越的稳定性,成为了软件开发领域的热门选择。它不仅吸引了众多专业开发者,还激发了科研学者和电脑爱好者的浓厚兴趣。...

    Android应用源码之Fanfoudroid(饭否网开源项目)-IT计算机-毕业设计.zip

    《Android应用源码解析:深度探索Fanfoudroid——移动开发的实践与学习》 在当今的移动互联网时代,Android应用开发已经成为IT行业的热门领域,尤其是对于计算机专业的毕业生来说,掌握Android开发技能并能完成一个...

    android-ndkr10环境搭建.pdf

    在本文中,我们将详细介绍如何搭建Android NDK r10开发环境,并通过实例来理解这一过程。Android NDK是Android开发工具的一部分,它允许开发者使用C和C++原生代码来编写部分应用程序,以提高性能或利用特定硬件功能...

    Flash Development for Android Cookbook

    - **集成开发环境:** 作者Joseph Labrecque可能推荐使用特定版本的Adobe Flash Professional或其他IDE来进行开发。这些工具通常集成了调试、打包和发布等功能。 - **实战案例分析:** 书中的90多个“食谱”涵盖了从...

    JAVA开发经理_java个人简历模板.doc

    * Java ME(Micro Edition):用于开发移动设备应用程序,涉及技术包括 Android app 软件开发 * 软件研发经理:负责带领团队攻克技术难题,设计和研发创新产品 * 软件工程师:负责开发和维护软件系统,包括 Java ...

    Android自动来电录音

    在Android平台上实现自动来电录音是一项技术挑战,但并非无法攻克。Android系统提供了丰富的API和工具,使得开发者可以创建各种功能丰富的应用,包括来电录音。在本文中,我们将深入探讨如何利用Android的...

    大学生攻克Linux系统教程

    此外,还将介绍版本控制工具Git,以及构建自动化工具Make,帮助初学者建立良好的编程习惯。 总的来说,“大学生攻克Linux系统教程”是一份全面而基础的引导材料,涵盖了Linux入门所需的关键知识点。通过这个教程,...

    24学时攻克c++

    - **构建工具**:CMake、Make等用于项目管理和编译流程自动化。 ### 二、C++核心语法 #### 1. 数据类型 - **基本类型**:整型(int)、浮点型(float/double)、字符型(char)等。 - **复合类型**:数组、指针、结构体...

    毕业设计 中期汇报表 android 个人理财

    - **项目名称**:基于Android平台的个人理财系统设计与实现。 - **项目意义**:随着移动互联网技术的发展,人们越来越依赖智能手机来进行日常生活中的各种操作,包括财务管理。本项目旨在开发一款针对个人用户的理财...

    攻克Data动态获取网页评论,保存数据库

    【攻克Data动态获取网页评论,保存数据库】是一个关于利用特定工具——攻克Data,来抓取网页上的评论数据并存储到数据库的过程。这个过程涉及到网络爬虫技术、JSON解析以及数据库管理等多个IT领域的知识点。 1. **...

    学宝app·······

    技术层面,学宝APP采用了先进的移动端开发技术,如React Native或Flutter,确保应用运行流畅,界面友好。同时,为了保护用户隐私和数据安全,学宝APP严格遵循相关法律法规,对用户信息进行加密处理,并设有严格的...

    项目开发过程文档.pdf

    在开发过程中,团队在2006年6月至12月期间攻克了若干关键技术难题,如实时图像无线传输,PLC与上位机的自定义协议通讯,变长数据协议的可靠性验证,以及烟雾图像识别的数学模型建立与验证。在此期间,完成了系统结构...

    需要攻克的模块

    【标题】:“需要攻克的模块”通常指的是在IT项目开发或个人学习过程中遇到的特定技术难题或功能模块,这些模块可能涉及到系统设计的关键部分,或者是技术栈中的难点。在这个特定的场景下,"蓝牙模块"可能就是我们...

    24小时攻克c++代码

    《24小时攻克C++代码》是一门针对C++编程语言深入浅出的学习教程,旨在帮助初学者在短时间内掌握C++编程基础,并逐步提升至进阶水平。C++是一种广泛应用的面向对象编程语言,它的强大功能和高效性能使得它在系统软件...

    新东方8天攻克8000单词魔鬼训练营

    2. 颜色编码技术:利用色彩区分词根,使记忆过程更具视觉效果,增加记忆深度。 3. 关键字母记忆策略:聚焦单词中的关键部分,减少记忆负荷。 4. 高强度学习计划:在8天内挑战8000个单词,锻炼学习者的快速记忆和持久...

    软件开发的201个原则v1.3.pdf

    - **实践建议**:实施敏捷开发流程,快速迭代版本以获得用户反馈。 ##### 8. **与客户/用户沟通** - **核心思想**:强调与客户和用户的沟通在整个项目周期中的重要性。 - **实践建议**:建立定期会议制度,及时...

    攻克高考化学推断题2.资料.pdf

    例如,金属与非金属的反应如2Mg+O2=2MgO,金属与酸的反应如Zn+2HCl=ZnCl2+H2↑,金属与水的反应如2Na+2H2O=2NaOH+H2↑,以及金属与氧化物的反应如2Al+Fe2O3=2Fe+Al2O3。II. H2、C、Si作为还原剂时,主要参与氧化还原...

Global site tag (gtag.js) - Google Analytics