精华内容
下载资源
问答
  • Android入门

    千次阅读 2018-12-26 22:59:16
    Android入门 Android平台架构 应用程序 这一层是应用层,是Google最开始时在Android系统中捆绑了一些核心应用程序。比如e-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序,等等。 这些应用程序都...

    Android入门

    Android平台架构

    Android平台架构

    应用程序

    应用程序

    这一层是应用层,是Google最开始时在Android系统中捆绑了一些核心应用程序。比如e-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序,等等。

    这些应用程序都使用Java语言编写。

    你也可以用自己编写的应用程序来替换Android提供的应用程序,这个替换的机制实际是应用程序框架来保证的。

    应用程序框架

    应用程序框架

    第三层是Android核心应用程序所使用的API框架,是创建应用程序时需要使用的各种高级构建块。用户可以自由地使用它们来开发自己的应用程序。

    该框架最重要的部分包括:活动管理器,内容提供器,资源管理器,位置管理器,通知管理器。

    任何应用程序都可以发布自己的功能模块供其他应用程序使用。

    用户可能随意替换程序组件。

    系统运行库

    系统运行库

    第二层是核心的扩展类库,由C、C++语言实现。包括:

    • 系统库:Bionic系统C库、多媒体库、SGL-2D图形引擎库、SSL-TCP/IP协议为数据通信提供支持、OpenGL ES -3D效果支持、SQLite-关系数据库、Webkit浏览器、FreeType-位图,矢量等。

    • Android Runtime:

      • 核心类库:提供了Java编程语言核心类库具有的大部分功能。

      • Dalvik虚拟机:

        • 每个Java程序都运行在Dalvik虚拟机之上。
        • Dalvik虚拟机能对内存高效使用,在低速CPU上表现出高性能。
        • 与Java虚拟机不同,Dalvik虚拟机是基于寄存器实现的,只执行其专用的 “.dex”格式文件。

    Linux 内核

    Linux内核

    第一层是Linux内核层,包括Linux 操作系统及驱动,依赖于Linux2.6内核。使得Android能实现核心系统服务。

    除了标准的Linux内核外,Android 系统还增加了Binder IPC驱动、WiFi驱动、蓝牙驱动等驱动程序, 为系统运行提供了基础性支持。

    开发环境搭建

    采用Android Studio + SDK来搭建开发环境。

    1、Java JDK安装与配置

    1. 下载Java开发工具包JDK,并安装;

    2. 配置环境变量

      • Linux系统

        在终端输入/usr/libexec/java_home可以得到JAVA_HOME 的路径

        在终端输入sudo vim /etc/profile

        输入如下配置:

        JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"
        export JAVA_HOME
        CLASS_PATH="$JAVA_HOME/lib"
        PATH="$PATH:$JAVA_HOME/bin"
        

        输入source /etc/profile运行profile配置

      • Window系统

        打开系统属性的环境变量窗口,在"系统变量"中设置3项属性(若已存在则点击"编辑",不存在则点击"新建"):

        变量名:JAVA_HOME
        变量值:C:\Program Files (x86)\Java\jdk1.8.0_91        // 要根据自己的实际路径配置
        变量名:CLASSPATH
        变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;         //记得前面有个"."
        变量名:Path
        变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;    //在 Windows10 中,Path 变量里是分条显示的,我们需要将 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 分开添加,否则无法识别
        
    3. 验证JDK是否安装成功

      终端输入java -version,能出现版本号就说明环境变量配置成功。

    2、安装Android Studio

    3、新建Android项目

    1. 新建一个Android项目
      新建Android项目

    2. 选择开发程序将运行在哪个平台上:
      选择平台

    3. 选择Activity的风格:

    选择Activity风格

    1. 设置Activity属性
      设置Activity属性

    4、项目目录结构

    一个Android应用程序以一个项目目录的形式组织。Android程序由 java代码和xml 属性声明共同设计完成。

    Android应用程序结构

    项目目录结构如下:

    项目目录结构

    5、相关术语的解析

    • Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用
    • AVD(android virtual machine):安卓虚拟设备,就是安卓的模拟器
    • ADT(android development tools): 安卓开发工具
    • SDK(software development kit):软件开发工具包,就是安卓系统,平台架构等的工具集合,如adb.exe
    • DDMS(dalvik debug monitor service):安卓调试工具
    • adb:安卓调试桥,在sdk的platform-tools目录下,功能很多,命令行必备
    • DX工具:将.class转换成.dex文件
    • AAPT(android asset packing tool):安卓资源打包工具
    • R.java文件:由aapt工具根据App中的资源文件自动生成,可以理解为资源字典
    • AndroidManifest.xml:app包名 + 组件声明 + 程序兼容的最低版本 + 所需权限等程序的配置文件

    6、APP程序打包与安装的流程

    APP程序打包与安装的流程

    Android签名

    Android签名的目的:

    • 发送者的身份认证。
    • 保证信息传输的完整性。
    • 防止交易中的抵赖发生,Android Market 对软件的要求。

    如果要正式发布一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名。

    每个要安装到Android平台的应用都要被编译打包为一个单独的文件,扩展名为 .apk。APK文件包含了应用的二进制代码、资源、配置文件等。将APK文件传入Android模拟器或Android手机中即可安装。

    为Android应用程序签名时,需要注意以下几点:

    • 所有的Android应用都必须有数字签名,Android系统不会安装没有数字证书的应用。
    • 同一个开发者的多个程序尽可能使用同一个数字证书签名。
    • 签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。
    • 正式发布一个Android应用时,必须使用一个合适的私钥生成的数字证书来给程序签名,不能使用ADT插件或者ANT工具生成的调试证书来发布。
    • 数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

    7、APP的安装过程

    APP的安装过程

    Android应用程序

    Android 应用采用 Java 编程语言编写。Android SDK 工具将您的代码 — 连同任何数据和资源文件 — 编译到一个 APK:Android 软件包,即带有 .apk 后缀的存档文件中。一个 APK 文件包含 Android 应用的所有内容,它是基于 Android 系统的设备用来安装应用的文件。

    安装到设备后,每个 Android 应用都运行在自己的安全沙箱内:

    • Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一个不同的用户;
    • 默认情况下,系统会为每个应用分配一个唯一的 Linux 用户 ID(该 ID 仅由系统使用,应用并不知晓)。系统为应用中的所有文件设置权限,使得只有分配给该应用的用户 ID 才能访问这些文件;
    • 每个进程都具有自己的虚拟机 (VM),因此应用代码是在与其他应用隔离的环境中运行;
    • 默认情况下,每个应用都在其自己的 Linux 进程内运行。Android 会在需要执行任何应用组件时启动该进程,然后在不再需要该进程或系统必须为其他应用恢复内存时关闭该进程。

    Android 系统可以通过这种方式实现最小权限原则。也就是说,默认情况下,每个应用都只能访问执行其工作所需的组件,而不能访问其他组件。 这样便营造出一个非常安全的环境,在这个环境中,应用无法访问系统中其未获得权限的部分。

    不过,应用仍然可以通过一些途径与其他应用共享数据以及访问系统服务:

    • 可以安排两个应用共享同一 Linux 用户 ID,在这种情况下,它们能够相互访问彼此的文件。 为了节省系统资源,可以安排具有相同用户 ID 的应用在同一 Linux 进程中运行,并共享同一 VM(应用还必须使用相同的证书签署)。
    • 应用可以请求访问设备数据(如用户的联系人、短信、可装载存储装置 [SD 卡]、相机、蓝牙等)的权限。 用户必须明确授予这些权限。

    应用组件

    Android应用组件

    应用组件是 Android 应用的基本构建基块。每个组件都是一个不同的点,系统可以通过它进入您的应用。 并非所有组件都是用户的实际入口点,有些组件相互依赖,但每个组件都以独立实体形式存在,并发挥特定作用 — 每个组件都是唯一的构建基块,有助于定义应用的总体行为。

    共有四种不同的应用组件类型。每种类型都服务于不同的目的,并且具有定义组件的创建和销毁方式的不同生命周期。

    应用组件类型

    1. Activity

      Activity 表示具有用户界面的单一屏幕。例如,电子邮件应用可能具有一个显示新电子邮件列表的 Activity、一个用于撰写电子邮件的 Activity 以及一个用于阅读电子邮件的 Activity。 尽管这些 Activity 通过协作在电子邮件应用中形成了一种紧密结合的用户体验,但每一个 Activity 都独立于其他 Activity 而存在。 因此,其他应用可以启动其中任何一个 Activity(如果电子邮件应用允许)。 例如,相机应用可以启动电子邮件应用内用于撰写新电子邮件的 Activity,以便用户共享图片。

    2. 服务Service

      服务是一种在后台运行的组件,用于执行长时间运行的操作或为远程进程执行作业。 服务不提供用户界面。 例如,当用户位于其他应用中时,服务可能在后台播放音乐或者通过网络获取数据,但不会阻断用户与 Activity 的交互。 诸如 Activity 等其他组件可以启动服务,让其运行或与其绑定以便与其进行交互。

    3. 内容提供程序(Content Provider)

      内容提供程序管理一组共享的应用数据。您可以将数据存储在文件系统、SQLite 数据库、网络上或您的应用可以访问的任何其他永久性存储位置。 其他应用可以通过内容提供程序查询数据,甚至修改数据(如果内容提供程序允许)。 例如,Android 系统可提供管理用户联系人信息的内容提供程序。 因此,任何具有适当权限的应用都可以查询内容提供程序的某一部分(如 ContactsContract.Data),以读取和写入有关特定人员的信息。

      内容提供程序也适用于读取和写入您的应用不共享的私有数据。

      ContentProvider为所有需要共享的数据创建一个数据表。ContentProvider会对外提供一个公开的通用资源标识符URI(Uniform Resource Identifier)来标识数据集。

      URI格式如下:scheme://host:port/path,如content://com.example.project:200/folder/subfolder/etc

    4. 广播接收器(Broadcast Receiver)

      广播接收器是一种用于响应系统范围广播通知的组件。许多广播都是由系统发起的 — 例如,通知屏幕已关闭、电池电量不足或已拍摄照片的广播。应用也可以发起广播 — 例如,通知其他应用某些数据已下载至设备,并且可供其使用。 尽管广播接收器不会显示用户界面,但它们可以创建状态栏通知,在发生广播事件时提醒用户。 但广播接收器更常见的用途只是作为通向其他组件的“通道”,设计用于执行极少量的工作。 例如,它可能会基于事件发起一项服务来执行某项工作。

      使用过程:将需要广播的消息封装到Intent中。然后通过发送方法中将Intent广播出去 。通过IntentFilter对象来过滤所发送的实体Intent。

    Android 系统设计的独特之处在于,任何应用都可以启动其他应用的组件。 例如,如果您想让用户使用设备的相机拍摄照片,很可能有另一个应用可以执行该操作,那么您的应用就可以利用该应用,而不是开发一个 Activity 来自行拍摄照片。 您不需要集成甚至链接到该相机应用的代码,而是只需启动拍摄照片的相机应用中的 Activity。 完成拍摄时,系统甚至会将照片返回您的应用,以便您使用。对用户而言,就好像相机真正是您应用的组成部分。

    当系统启动某个组件时,会启动该应用的进程(如果尚未运行),并实例化该组件所需的类。 例如,如果您的应用启动相机应用中拍摄照片的 Activity,则该 Activity 会在属于相机应用的进程,而不是您的应用的进程中运行。因此,与大多数其他系统上的应用不同,Android 应用并没有单一入口点(例如,没有 main() 函数)。

    由于系统在单独的进程中运行每个应用,且其文件权限会限制对其他应用的访问,因此您的应用无法直接启动其他应用中的组件, 但 Android 系统却可以。因此,要想启动其他应用中的组件,您必须向系统传递一则消息,说明您想启动特定组件的 Intent。 系统随后便会为您启动该组件。

    启动组件

    四种组件类型中的三种 — Activity、服务和广播接收器 — 通过名为 Intent 的异步消息进行启动。Intent 会在运行时将各个组件相互绑定(您可以将 Intent 视为从其他组件请求操作的信使),无论组件属于您的应用还是其他应用。

    Intent 使用 Intent 对象创建,它定义的消息用于启动特定组件或特定类型的组件 — Intent 可以是显式的,也可以是隐式的。

    对于 Activity 和服务, Intent 定义要执行的操作(例如,“查看”或“发送”某个内容),并且可以指定要执行操作的数据的 URI(以及正在启动的组件可能需要了解的信息)。 例如, Intent 传达的请求可以是启动一个显示图像或打开网页的 Activity。 在某些情况下,您可以启动 Activity 来接收结果,在这种情况下,Activity 也会在 Intent 中返回结果(例如,您可以发出一个 Intent,让用户选取某位联系人并将其返回给您 — 返回 Intent 包括指向所选联系人的 URI)。

    对于广播接收器, Intent 只会定义要广播的通知(例如,指示设备电池电量不足的广播只包括指示“电池电量不足”的已知操作字符串)。

    Intent 不会启动另一个组件类型 - 内容提供程序,后者会在成为 ContentResolver 的请求目标时启动。 内容解析程序通过内容提供程序处理所有直接事务,使得通过提供程序执行事务的组件可以无需执行事务,而是改为在 ContentResolver 对象上调用方法。 这会在内容提供程序与请求信息的组件之间留出一个抽象层(以确保安全)。

    每种类型的组件有不同的启动方法:

    • 您可以通过将 Intent 传递到 startActivity()startActivityForResult()(当您想让 Activity 返回结果时)来启动 Activity(或为其安排新任务)。
    • 您可以通过将 Intent 传递到 startService() 来启动服务(或对执行中的服务下达新指令)。 或者,您也可以通过将 Intent 传递到 bindService() 来绑定到该服务。
    • 您可以通过将 Intent 传递到 sendBroadcast()sendOrderedBroadcast()sendStickyBroadcast() 等方法来发起广播;
    • 您可以通过在 ContentResolver 上调用 query() 来对内容提供程序执行查询。

    AndroidManifest.xml文件

    在 Android 系统启动应用组件之前,系统必须通过读取应用的 AndroidManifest.xml 文件(“清单”文件)确认组件存在。 您的应用必须在此文件中声明其所有组件,该文件必须位于应用项目目录的根目录中。

    AndroidManifest.xml的主要作用:

    • 声明应用程序的包名,该包名将作为应用程序的唯一标识符
    • 声明应用的组件,如Activity、Service、BroadcastReceiver及ContentProvider等
    • 确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限
    • 根据应用使用的 API,声明应用所需的最低 API 级别
    • 声明应用使用或需要的硬件和软件功能,如相机、蓝牙服务或多点触摸屏幕
    • 应用需要链接的 API 库(Android 框架 API 除外),如 Google 地图库

    AndroidManifest.xml结构示例:

    <?xml version="1.0" encoding="utf-8"?><!--定义使用的xml版本和编码-->
    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.liaoxuyi.androidlearning"><!--定义应用程序包名-->
        
        <!--声明应用程序正常工作所需要的权限。程序包必须被授予该权限才能进行正确的操作。-->
        <uses-permission android:name="android.permission.ACCESS_LOCATION" />
        
        <!--声明一个安全授权。用来限制哪些应用可以访问指定的程序包内的组件和特有功能。-->
        <permission android:name="android.permission.ACCESS_LOCATION"></permission>
        
        <!--声明程序内应用级别组件的根节点,描述应用程序的全局/默认属性,如标签、图标、主题及权限等。-->
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <!--声明一个Activity-->
            <activity android:name=".MainActivity">
                <!--声明组件所支持的一组Intent值-->
                <intent-filter>
                    <!--声明该组件支持的Intent action-->
                    <action android:name="android.intent.action.MAIN" />
                    <!--声明该组件支持的Intent目录-->
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <!--定义一个Service组件-->
            <service
                android:name=".MyService"
                android:enabled="true"
                android:exported="true" />
            <!--定义一个使应用监听全局事件,并对外部事件作出响应的BroadcastReceiver组件-->
            <receiver
                android:name=".MyReceiver"
                android:enabled="true"
                android:exported="true" />
            <!--定义一个用来管理和发布持久数据的ContentProvider组件-->
            <provider
                android:name=".MyContentProvider"
                android:authorities="com.example.liaoxuyi.androidlearning.MyContentProvider"
                android:enabled="true"
                android:exported="true"></provider>
        </application>
    </manifest>
    

    应用开发步骤

    开发Android应用项目,首先需要整理以下内容:

    • 项目有哪些功能;
    • 需要哪些用户界面;
    • 各界面之间跳转的流程;
    • 需要的数据及其数据的来源和格式;
    • 是否需要服务端的支持;
    • 是否需要本地数据库的支持;
    • 是否需要特殊的权限;
    • 是否需要后台进程等。

    在进入具体的编码前,需要形成相关开发文档,描述上面涉及的问题。

    开发步骤

    1. 用户界面设计

      按照项目规划文档,使用XML文件描述出Android的用户界面:布局模式、视图组件、填充的数据等。

    2. 准备需要的资源

    3. 数据操作和存储

      数据来源(SharedPreferences、数据库、ContentProvider、网络等)及存储开发。

    4. 多页面的跳转实现

      实现各个界面直接的调用和跳转流程。

    5. 增加Service

      实现项目需要的Service。

    6. 完善应用细节

      从网络上获取数据,在manifest.xml中需要添加相关的uses-permission;
      老版本更新,在manifest.xml中需要更新versionCode,versionName;

    7. 应用测试

      使用模拟器和Eclipse中的DDMS功能。

    8. 打包发布

    展开全文
  • android入门到精通详解

    千次下载 热门讨论 2014-07-08 09:40:35
    android入门到精通详解
  • Android入门课程之JAVA入门

    千人学习 2016-06-02 17:03:32
    韦东山老师的Android入门视频教程,该课程主要讲解android开发所需的Java基础知识,包括Java类、封装、继承、多态、异常、泛型、反射等知识点。看完这十多节视频就能掌握Android开发所需的java知识
  • android入门到精通

    千次下载 热门讨论 2012-09-05 14:53:05
    Android入门到精通,有17个经典案例帮您学习
  • 第一章_Android入门

    千次阅读 多人点赞 2020-02-28 16:42:50
    第一章_Android入门 1.Android开发环境的搭建 安卓的开发环境有两种 1)Android Studio 优点:是专业的安卓开发软件.缺点:电脑要求的配置很高,对于初学者,可能你要一直在调试工具,谷歌对我对国内封锁 2)Eclipse+Sdk+...

    第一章_Android入门

    1.Android开发环境的搭建

    安卓的开发环境有两种

    1)Android Studio

    优点:是专业的安卓开发软件.缺点:电脑要求的配置很高,对于初学者,可能你要一直在调试工具,谷歌对我对国内封锁

    2)Eclipse+Sdk+Adt

    优点:对硬件要求低,适合初学者,并且我们以后要前后端交互,在eclipse中可以同时跑安卓和java项目.缺点:没有Android studio专业

    环境搭建步骤

    第一步:安装eclipse
    第二步:安装ADT

    android development tool(安卓开发工具)eclipse开发android插件。

    virtual device manager–>管理模拟器/手机,平板.但是我在这里要推荐使用Genymotion模拟器,因为这个模拟器跑的比较快.

    SDK manager–>管理SDK。

    1)下载ADT

    网址:http://adt.android-studio.org/

    ADT 23.06这个版本是能在中国下载的最高的版本,对应的API是22

    我下载好的:链接:https://pan.baidu.com/s/14HoRzdk4vm-sfXDWznk6kg
    提取码:ufpv

    2)安装ADT

    将SDK解压,ADT不用解压.全部一起放在一个文件夹中.注意:路径不能出现中文
    在这里插入图片描述

    然后在eclipse中:help–>Install new software–>add,选择本地的ADT的压缩包–>全选–>finish
    在这里插入图片描述

    3)检查是否安装成功

    如果安装完成之后,在windows下面可以看到Android SDK Manager 和Android Virture Device Manager两个插件的按钮.并且可以new安卓项目.
    在这里插入图片描述

    如果没有看见,点击windows–>Perspective–>Customize Perspective–>Action Set Avaliability–>勾选Android SDK and AVD Manager–>finish
    在这里插入图片描述

    然后
    在这里插入图片描述

    第三步:配置SDK

    1)下载SDK

    网址:http://sdk.android-studio.org/下载24.4.1这个zip版本
    在这里插入图片描述

    2)解压

    3)配置

    windows–>preference–>Android–>配置SDK的根路径–>finish
    在这里插入图片描述

    4)配置环境变量

    创建一个ANDROID_HOME,路径指向sdk的根路径.
    在这里插入图片描述

    在path路径后面添加**;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools**
    在这里插入图片描述

    第四步:安装SDK tools和android api

    SDK Tools 必须

    SDK Platform-tools 必须

    SDK Build-tools必须

    SDK Platform必须至少安装一个版本

    打开Android SDK Manager,下载tools,选择25,29,22,21,这四个工具就够了
    在这里插入图片描述

    API下载5.1.1(API 22)和5.0.1(API 21)
    在这里插入图片描述

    其他的下载Google USB驱动,和Intel x86驱动
    在这里插入图片描述

    第五步:创建模拟器

    在这里插入图片描述

    第六步:安装Gnymotion模拟器

    (如果电脑的配置够可以不用装,如果电脑的配置不够建议装)

    1)下载Genymotion安装包

    下载网址:https://www.genymotion.com/download/ (下载前先注册)

    下载244M的
    在这里插入图片描述

    2)解压安装

    一直下一步就可以了,注意路径不能有中文

    3)下载模拟器
    在这里插入图片描述

    4)在eclipse里面安装Gneymotion的插件

    我下载好的离线安装包:https://pan.baidu.com/s/10up51wF020SPlRReMm2BZA
    提取码:7fnj

    将安装包全部解压,分别拷贝到eclispe的安装路径下的features和plugins文件夹中.

    重启之后就会看到一个小图标
    在这里插入图片描述

    5)编写reg.exe程序

    这个程序在网上下载的是没有用的,因为这个exe程序是由c执行代码编译出来的,这个reg.exe文件其实就是用来标识VirtualBox的安装目录的。但是每一人的virtualBox的路径不一致,所以我们下载别人的也没有用.

    reg.c代码如下

    #include<stdio.h>
    int main(void)
    {
    printf(“K:\\Genimotion\\Vm”);//输出的内容是你自己电脑中VirtualBox的安装路径
    return 0;
    }

    一定要注意:

    1.路径是virtualBox的安装根路径 2.要加"\\",第一个\是转义符号,第二个才是正真的\.

    然后运行reg.c就会生成一个reg.exe文件,把这个启动程序复制到Gnymotion的安装目录下,重启eclipse就完成了.

    2.Android环境搭建的问题

    1)SDK Manager和Virtual Device Manager在window窗口中不存在/

    解决:

    Windows==》Customize Perspective==》Command Groups Availability选项卡,左边的Available command groups 下的Android sdk and avd manager项打上勾就ok了

    2)创建模拟器的时候,选择不到target

    解决:

    安装完包以后,没有重启eclipse,重新启动eclipse。

    3)启动模拟器失败,报错:HAXM没有安装。

    在这里插入图片描述
    解决:
    启动模拟器的时候如果报:HAXM没有安装,需要手动安装 一下。
    安装方法,在sdk下找到HAXM目录,找到exe文件安装,就可以了。
    \sdk\extras\intel\Hardware_Accelerated_Execution_Manager路经下找到intelhaxm-android.exe开始安装。

    4)HAXM安装失败

    在这里插入图片描述

    BIOS界面设置VT为enabled
    在这里插入图片描述

    5)安装包时,tools安装失败

    在这里插入图片描述

    解决:

    替换android-sdk-windows 下面的tools文件夹。

    tools在U+平台工具中下载。

    6)项目中代码报错。

    在这里插入图片描述

    解决:

    创建项目的时候,选择Minimum Required SDK 不要低于3.0。
    在这里插入图片描述

    7)无法访问谷歌网址,不能安装sdk包。

    在这里插入图片描述

    从下面地址下载SDK,使用下载的SDK。(压缩包大小:5G)
    https://pan.baidu.com/s/1LyyqccBCoUz5F7lnOM8ERA
    提取码:giwl

    3.Android开发平台界面介绍

    1)创建一个Android项目

    创建一个workset文件夹,workset就类似一个文件夹,可以分门别类的存放项目,创建方式如下图所示:
    在这里插入图片描述

    显示workset空间:
    在这里插入图片描述

    在workset空间中创建一个Android项目
    在这里插入图片描述

    注意Api的版本
    在这里插入图片描述

    关联模拟器:

    首先启动模拟器,然后run as Android Application,就会自动显示在安卓模拟器上.
    在这里插入图片描述
    这样一个初始项目就创建成功!

    2)开发面板介绍

    图形化控制面板中的所有部件直接往安卓界面中拖拽就ok.
    在这里插入图片描述

    大纲面板中会按照层级显示所有部件,然后在部件的名字上点击一下即可在部件属性面板中看到各个部件的属性,在部件属性面板中可以直接修改所有部件的属性.
    在这里插入图片描述

    控制台面板,可以看到整个项目的运行情况
    在这里插入图片描述

    logcat日志面板,在日志面板中可以看到项目在运行时候的所有运行状况,并且可以在这里查找程序的错误情况.但是在你运行了很多个项目的时候,要找到你单前运行的项目的日志很麻烦,我们可以在logcat面板中添加一个过滤器,过滤其他的日志,选择你需要的日志.
    在这里插入图片描述

    最后就是ApI切换面板,在我们的默认面板的右上角有一个Api的切换面板,我们可以选择自己需要的Api.
    在这里插入图片描述

    4.Android项目结构介绍

    在这里插入图片描述

    5.Android Manifest配置文件

    在这里插入图片描述

    6.Android导出apk包

    如果一个项目做完了,我们可将其导出为apk包,这个apk包则可以在手机上直接运行.

    Export–>Android–>Export Android Application
    在这里插入图片描述

    项目名称,可改可不改.
    在这里插入图片描述

    选择签名,如果之前没有keystore就要创建一个keystore,最后的那个keystore签名要以keystore为后缀名.
    在这里插入图片描述

    签名信息,Validity是年限,是多少年多少年,不是到那一年截止,例如30年
    在这里插入图片描述

    导出Apk的位置,完成
    在这里插入图片描述

    导出前,可以到Manifest配置文件中设置apk文件的图标.
    在这里插入图片描述

    选择签名,如果之前没有keystore就要创建一个keystore,最后的那个keystore签名要以keystore为后缀名.
    在这里插入图片描述

    签名信息,Validity是年限,是多少年多少年,不是到那一年截止,例如30年

    在这里插入图片描述

    导出Apk的位置,完成

    在这里插入图片描述

    导出前,可以到Manifest配置文件中设置apk文件的图标.
    在这里插入图片描述
    这是我上课笔记,完全是自己一个一个的敲出来,然后腾到csdn上面的,如果你觉得写得笔记不错就点个赞哦!您的赞美就是我的创作源泉

    展开全文
  • Android入门基础教程(小白速成1)

    千次阅读 多人点赞 2021-01-11 17:56:04
    Android 入门基础教程(小白速成1) 编译工具:Android Studio 各种工具其实大同小异 开发环境的搭建还有项目新建这里就不过多说明了,网上有很多教程。项目新建按照需求来就好,我这里选用空的界面(Empty Activity...

    Android 入门基础教程(小白速成1)

    编译工具:Android Studio
    各种工具其实大同小异
    开发环境的搭建还有项目新建这里就不过多说明了,网上有很多教程。项目新建按照需求来就好,我这里选用空的界面(Empty Activity)和Android 4.0.3,大家一定要注意安卓版本匹配问题鸭,之前每次新建项目都报错,最后才发现是版本匹配问题。
    话不多说,进入正题吧!

    Hello World!

    新建好项目以后,我们首先认识几个主要用到的界面。
    在这里插入图片描述

    MainActivity.java页面,这个页面相当于我们的主视图。
    res文件夹是资源文件的配置文件。
    文件夹里面有 layout 用来存放布局文件。
    以上就是基本用到的文件,而如果此时项目没有报错,那么直接运行便会可以显示hello world,应用已经发布到了模拟器上。
    在这里插入图片描述
    如图,我们运行成功了。模拟器和普通手机很类似,可以实现很多功能。大家可以自行尝试。

    开始添加组件

    我们添加组件的操作是在activity_main.xml上通过拖动完成的
    在这里插入图片描述
    最左下角的design视图里,我们能通过拖动左边的组件,放在右边的界面上。Text页面是组件的代码,我们可以在text页面修改组件的参数。
    而拖动后可能会报错,如下图
    在这里插入图片描述
    只需要在右侧布局中点击组件周围的加号,给它固定位置即可
    在这里插入图片描述

    点击按钮响应

    我们可以向页面中拖入button,自然需要点击按钮时还有一定的响应。
    这就需要在activity_main.xml里的代码页面(Text)进行修改。

    <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="157dp"
            android:layout_marginLeft="157dp"
            android:layout_marginTop="218dp"
            android:text="Button"
    
            android:onClick="test"
    
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    

    我们只是添加了一句点击响应。点击时,调用test方法
    test方法是需要我们在 MainActivity.java 中自己定义的。

     public void test(View view){
            //View 表示把点击的对象引用传进来
            Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
        }
    

    在类中添加如上方法,中间的参数分别表示绑定的对象,提示的信息和显示的时间长短。
    这样,我们就可以在点击按钮以后有一个小的提示出现。

    在这里插入图片描述

    点击修改组件信息

    如果要实现点击按钮后,对文字内容进行修改,我们首先需要找到文字内容的位置,类似于js中,我们可以在test方法中这样写。

     public void test(View view){
            //View 表示把点击的对象引用传进来
            TextView textView =findViewById(R.id.textView);
            textView.setText("内容被修改了");
            Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
        }
    

    在这里插入图片描述
    (组件必须有id值才能被找到,所以记得看看要修改的组件id是什么,例如:android:id="@+id/textView")

    自定义string

    在values文件下我们可以看到有strings.xml,里面可以添加定义的字符串。

    <resources>
        <string name="app_name">My Application</string>
    
        <string name="st1">this is your word</string>>
    </resources>
    

    此时我们的test方法可以更改为这样,来使显示的文字变成我们提前定义好的st1。

    public void test(View view){
            //View 表示把点击的对象引用传进来
            TextView textView =findViewById(R.id.textView);
            textView.setText(R.string.st1);
            Toast.makeText(MainActivity.this,"点击了button",Toast.LENGTH_SHORT).show();
        }
    

    这么定义,主要是为了使这个字符串被多次引用时,调用、修改更为方便。

    当然,string不仅可以在代码中引用,也可以在页面中引用。

    android:text="@string/st1"
    

    这一句可以使按钮的显示文字变成我们定义的string

    资源国际化

    在res目录下新建文件夹:values-zh-rCN
    里面复制一份string.xml

    <resources>
        <string name="app_name">我的应用</string>
    
        <string name="st1">这里是自定义的文字</string>>
    </resources>
    
    

    虽然资源没有发生改变,但是实际运行却发现里面的文字变成了中文。
    而我们可以在模拟器的设置应用中找到语言切换(其实就是手机中切换显示语言的操作)。

    DDMS的应用

    DDMS是Dalvik调试监控服务,可以实现很多有用的功能:例如监控后台日志、系统线程、虚拟机状态、堆信息、模拟发短信、打电话……
    能够把模拟器运行的信息显示出来,方便我们调试程序。
    如果我们在test方法里,添加一句

    System.out.println("hhhhhhhhhhh")
    

    那么点击按钮后就能看到在后台
    在这里插入图片描述
    其实我们正常打印信息是选择使用log函数

     Log.d("init","Debug级别运行");
     Log.i("execute","info级别运行了");
    

    运行如下图所示
    在这里插入图片描述
    当然,那六个打印优先级是依次递减的,verbose所有都会显示,而assert所有的都不会显示。

    模拟器好玩的东西

    在这里插入图片描述
    右边的工具栏都是可以用的,而最底下那三个点,点击以后会进入Extended Control界面,在这里我们可以控制给自己发短信,打电话。
    在这里插入图片描述
    这个界面还有很多好玩的东西,就需要大家自己寻找啦!

    项目打包

    我们安装一个写好的程序是需要.apk文件的,我们可以点击build->build bundle(s)/apk(s)->bulid apk(s)
    生成,
    在这里插入图片描述
    然后就能在项目里找到apk文件。
    而这样产生的apk不够安全,有可能被同名的软件覆盖掉。
    所以我们就需要使用签名。

    apk设置签名

    为了安全起见
    我们一般要导出签名的应用

    1. build->generate signed bundle or apk
    2. 然后选择第二个:选择APK
    3. 创建一个新的密钥
    4. 配置密钥信息
    5. 选择release,勾选v2-apk签名
    6. 项目的release下便会有我们需要的apk文件
      在这里插入图片描述

    反编译小谈

    我们的apk文件实际上是一个压缩包,解压后可以看到我们项目经过处理后的文件。
    其中classes.dexresources.arsc文件是之前文件内容的集中和r类的集中。
    而反编译就是将这两个文件重新转化为之前文件的过程。

    反编译使用的软件:dex2jar和JD-GUI
    将需要反编译的文件拖进dex2jar的目录下,用cmd命令在目录下执行 dex2jar.bat 文件名(例如:dex2jar.bat classes.dex)
    然后会生成一个jar包

    用jd—gui.exe打开生成的jar包,我们就能看到可读的信息,也可以进行导出等操作。

    看到这里啦!制作不易,请点个赞再走吧!!!

    展开全文
  • Android入门教程 (一) Android简介和android studio安装

    千次阅读 多人点赞 2020-02-26 14:47:43
    写这篇文章,是为了让萌新们快速入门Android开发,同时讲述一下我对Android的理解,以及未来学习Android的规划,希望能够对大家有点参考价值。 Android是什么? Android就是跟苹果IOS一样,是一个操作系统。我们...

    本文原创首发CSDN,本文链接:https://blog.csdn.net/qq_41464123/article/details/104514467作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段文字,尤其是脚本之家、码神岛等平台,谢谢配合。


    前言

    写这篇文章,是为了让萌新们快速入门Android开发,同时讲述一下我对Android的理解,以及未来学习Android的规划,希望能够对大家有点参考价值。

     

    Android是什么?

    Android就是跟苹果IOS一样,是一个操作系统。我们的手机,比如华为、VIVO、小米、三星等等都是使用安卓系统。而我们学习Android开发,就是学习制作安卓APP的技能。至于Android底层的实现,我们等到会用了再去研究。

     

    为什么要学Android?

    Android开发是绝大多数高校计算机专业的必修课。要想毕业,就必须要学

    Android开发是一个计算机专业学生的基本功。不求多精通,但一定要会

    根据老师介绍,学习Android开发,不是为了拿高薪offer,而是为了保证自己不失业

    所以对于很多东西,比如微信公众号、PS等等,不求多精通,但一定要会,这也是我学习Android开发的准则

     

    Android Studio环境配置

    首先我们下载这个IDE(集成开发环境) 下载地址: android studio下载官网

    IDE就是我们平时所说的“编译器”,就像C++的VC6.0,Java的eclipse,就是我们写代码的工具

    下载之后,无脑下一步即可,即到如下界面

    注:安装完成之后,桌面不会有Android Studio的快捷方式,我们可以在{AS安装目录}\bin\studio64.exe找到它

    由于每一个IDE都有自己的设置,每个用户都有自己的爱好,有的人喜欢白色背景,有的人喜欢暗黑色背景......

    AS为我们提供了一个用户配置转移功能,我们可以导出自己的设置,并且在新环境安装AS的时候导入,即可一步实现自己习惯的设置。但是因为我们是首次安装,所以在导入配置窗口选择不导入

    接着会自动打开Android Studio,加载一段时间后,会弹出缺少SDK的提示,我们选择Cancel退出

    就像JAVA的JDK一样,SDK就是Android的运行环境,必须要有。

    接着就弹出欢迎界面,开始让你配置Android Studio,我们选择下一步

    接着就让我们选择一系列的设置,什么是否自定义安装,要什么背景颜色,这些都无关紧要,我没写的无脑next即可

    其中我们关心的是SDK的安装位置,因为SDK一般会占用至少10个G的位置,一般来说我们会把他放在非系统盘。比如我放在了D盘:

    接着到了最后一步点击Finish之后,AS就会帮我们下载安装所需要的SDK,大概耗时3~5分钟,下载安装完SDK,点击最后的Finish,就算安装成功了。


    本文原创首发CSDN,本文链接:https://blog.csdn.net/qq_41464123/article/details/104514467作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段文字,尤其是脚本之家、码神岛等平台,谢谢配合。


    开启第一个Android应用

    启动AS,因为我们是首次安装AS,我们需要新建一个自己的Android应用,

    AS功能很强大,不仅仅可以新建安卓手机的APP项目,也可以新建平板、电视的项目,而作为刚刚入门Android的我们,新建的是空白的安卓APP应用,选择Empty Activity,即空项目

    之后会让我们设置AS项目的详细信息,至于项目名、包名就随意了,我们又不写什么项目,只是练练手而已。

    保存路径可以选择改一下,设置最小SDK设置为21。

    至于我们安装的是29,这里为什么要设置为21,我觉得有必要解释一下:

    我们用AS写的APP项目,是要在一个叫夜神的第三方模拟器上跑的,人家的API才22,我们的最小API必须要小于等于这个数,否则跑不起来。就好比你拿着21世纪的电子产品,跟19世纪的人去用,人家不会用。

    点击Finish之后,AS会自动帮我们创建好项目,我们可以看到如下界面:

    左边是我们的项目结构,在入门阶段,我们只需要关注这两个文件,MainActivity.java是所谓的后端,即实现业务逻辑的部分;activity_main.xml就是所谓的前端,是处理界面的部分。

     我们来看AS自动生成的activity_main.xml具体代码:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>

    前面的是xml文件的基本配置,整个界面是用ConstraintLayout布局

    TextView是一个文本框组件,用于显示Hello world!文本

    layout_width/layout_height分别是该组件的宽度高度

    wrap_content代表包裹自身内部组件的大小,即里面的东西有多大,我就有多大

    text是文本框的文字,我们可以修改为自己喜欢的文字,比如自己姓名的简写


    接着来看看MainActivity.java

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
    

    这个类继承自AppCompatActivity,onCreate方法是在该类生成的时候执行的生命周期方法。

    方法内两行代码即显示刚刚的xml文件

     

    运行自己的项目

    要想运行自己的项目,要么使用自带的模拟器,要么使用第三方的模拟器。

    一般来说,第三方模拟器的性能会优于自带的模拟器,我们以夜神为例。

    先从夜神模拟器官网下载,跟安装QQ一样,正常安装即可。

    接着我们打开夜神模拟器,稍等半分钟时间,会发现AS自动和夜神链接,我们可以看到AS中:

    接着我们单击右上方的绿色三角形(运行按钮),跑起来

    这样我们就算Android初步入门吧,接着我还会写基础班、进阶版等等......

    如有不足之处,欢迎指出,谢谢!

    如果电脑前的你,出现了不太一样的界面,欢迎评论指出,我看到后会私下解决。

    展开全文
  • Android 入门教程:Android Studio 介绍

    万次阅读 2017-02-08 16:57:43
    原文:Beginning Android Development Tutorial: Introduction to Android Studio 作者:Megha Bambra 译者:kmyhy Android Studio 是基于 IntelliJ IDEA 开发的,是 ...在这个 Android 开发入门教程中,你将学会创
  • Xamarin Android入门教程 中文字幕Intro to Xamarin.Android Xamarin.Android允许开发人员使用C#代码库构建原生Android应用程序 为了使框架更有效,您需要了解活动,Android应用程序的基本构建块,以及学习如何...
  • Android入门第九篇之AlertDialog

    万次阅读 多人点赞 2010-10-21 10:36:00
    Android入门第九篇之AlertDialog
  • Android 入门,学习中

    2009-10-13 09:10:00
    Android 入门,学习中Android 入门,学习中Android 入门,学习中
  • OpenCV for Android入门

    万次阅读 2013-02-28 06:38:00
    在上一篇转载的文章(http://blog.csdn.net/liudekuan/article/details/8569687)中,已经对OpenCV在android环境的搭建进行了比较详细的说明,但...本文将在新版基础上进行OpenCV4android入门级说明。   1.环境搭建
  • Android入门教程第二节课,第一个APP —— 输出Hello World!
  • Android入门基础

    千次阅读 2019-04-11 10:16:57
    1 Android的整体架构图 注意: Android应用运行的是DVM虚拟机,并且一个应用一个虚拟机。 2 搭建开发环境(基于eclipse) 2.1 资源说明 2.2 环境变量配置 配置sdk目录下的: 2.3 eclipse里引用 2.4 ...
  • Android入门之AndroidStudio2.3.3下载

    千次阅读 2019-03-19 16:56:19
    AndroidStudio中文社区 AndroidStudio的各种历史版本可以去AndroidStudio中文社区进行下载! AndroidStudio中文社区-下载-历史版本下载
  • Android入门第十二篇之Gallery

    万次阅读 多人点赞 2010-10-24 00:16:00
    Android入门第十二篇之Gallery
  • Android入门第十篇之PopupWindow

    万次阅读 热门讨论 2010-10-21 13:23:00
    Android入门第十篇之PopupWindow
  • Android入门第十四篇之画图

    万次阅读 多人点赞 2010-10-27 20:25:00
    Android入门第十四篇之画图
  • Android入门(一) IDEA上创建Android应用之helloworld 首先看运行结果: 一、准备工作 下载安装IntelliJ IDEA :我这里用的是2018.2.7 下载安装Genymotion 下载安装Gradle管理工具 二、配置环境 1.配置Jdk ...
  • android入门:zxing学习笔记

    万次阅读 2014-01-14 22:49:39
    android入门:zxing学习笔记(一) 对于刚开始学习android开发的童鞋们来说,若有一个简单而又全面的android工程能来剖析,那就是再好不过了,zxing就是不错得例子。  zxing的源码可以到google code上下载,整个...
  • Android入门之C++视频培训教程

    千人学习 2016-06-08 10:11:10
    Android驱动视频的语言部分,定位是、高效,学完这十多节视频就能掌握Android开发所需的c++知识,C++入门知识视频教程,涵盖C++入门所需的所有知识点。
  • 黑马安卓Android入门基础就业班76期

    千次阅读 2018-06-18 10:20:11
    黑马安卓Android入门基础就业班76期文件大小:47.2G每个文件夹里面包含多个压缩包,内含每个章节的视频教程+课程源代码等,完整的一套黑马程序员Android入门基础就业班!下载地址:...
  • Android入门第十一篇之TabHost,TabWidget

    万次阅读 多人点赞 2010-10-22 11:47:00
    Android入门第十一篇之TabHost,TabTabWidget
  • android入门-android内嵌H5页面

    万次阅读 2018-03-06 18:50:34
    目标–打开app能够看到看到目前web端的主页,能够正常浏览即可; 目标基本达成,现在回顾一下知识点,其实比较小白; 流程:新建项目–MainActivity中放...android application project,如图1 键入项目名,由于是简单...
  • android入门小Demo

    千次阅读 2018-09-07 17:53:13
    分享一个android端的小例子,代码虽少,五脏俱全。 得到的效果是 废话不多说,直接上代码。 我们先看项目的结构。 我们的主活动页面是activity_main.xml 代码如下 &lt;?xml version="1.0" ...
  • Android入门篇(四):自动拨打电话、手动拨打电话 一、前言 最近在做的项目需要用到自动拨号的这一功能,17年写了一个,最近拿出来用发现不能使用了,后面查资料据说是因为Android 6(api23)之后对安全权限这一块...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,222
精华内容 46,088
关键字:

android入门