zoukankan      html  css  js  c++  java
  • Develop系列API Guides简介应用基础

    应用基础

    app用Java语言编写,以apk为后缀。

    apk运行在自身安全的沙盒中:

    • Android是多用户Linux系统,每个app就是一个不同的用户
    • 默认的,系统给每个app分配唯一的Linux用户ID,并设置访问权限
    • 每个进程有自己的虚拟机VM
    • 默认的,每个app运行在自己的Linux进程

    android系统实行最小权限原则。

    然后,有两种方式可以在不同app之间共享数据或者使用系统服务:

    • 两个app共享相同的Linux用户ID,他们就能互相访问各自的文件,app必须是相同签名的
    • app可以申请权限去访问终端数据,比如用户联系人,短信息,SD卡,相机,蓝牙等等,所有app权限都必须在安装时由用户授权。

    app组件

    Activities

    呈现单屏UI界面

    Services

    长时间在后台运行,无界面

    Content providers

    管理共享的app数据集,存储方式包括文件系统、SQLite数据库、Web或者app能够访问的任意存储位置

    Broadcast receivers

    广播响应全系统的广播通知,无界面,可以创建状态栏的通知

    启动组件

    Intent

    startActivity(), startActivityForResult()

    startService(), bindService()

    sendBroadcast(), sendOrderedBroadcast(), sendStickyBroadcast()

    ContentResolver.query() 

    Manifest文件

    定义组件

    activity, service, content provider 必须是在manifest里面静态注册,而broadcast可以动态注册

    定义组件能力

    显式指定组件类名来启动,或者隐式地通过intent filter来定义

    定义app依赖项

    Android终端众多,为了保证app能够在任意终端运行,需要定义app依赖运行的软硬件条件,比如,你的app需要照相功能并且运行在Android2.1(API LEVEL 7)版本之上,你需要定义如下依赖项:

    <manifest ... >
        <uses-feature android:name="android.hardware.camera.any"
                      android:required="true" />
        <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" />
        ...
    </manifest>

    这样Google Play检测到当前设备没有照相功能或者Android版本低于2.1就不能安装你的应用。

    如果你的app要用到照相功能,但不是必须使用,那可以将android:required设置为false,然后在运行时动态检查设备是否具有照相功能,来兼容不同的设备。

    app资源

    任何一个非代码的资源文件,SDK编译工具会定义一个唯一的整型ID,这样能够被代码或其他资源索引到。

    资源文件夹支持多种限定词来进行全球化、横竖屏等多场景的兼容。

  • 相关阅读:
    Largest Rectangle in Histogram
    Valid Sudoku
    Set Matrix Zeroes
    Unique Paths
    Binary Tree Level Order Traversal II
    Binary Tree Level Order Traversal
    Path Sum II
    Path Sum
    Validate Binary Search Tree
    新手程序员 e
  • 原文地址:https://www.cnblogs.com/konger/p/3896051.html
Copyright © 2011-2022 走看看