• 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,这样能够被代码或其他资源索引到。

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

  • 相关阅读:
    c++中为什么static成员函数不能声明为const
    VS 如何查看反汇编代码?
    Algorithm: 获取指定范围的随机数(包含范围临界值)
    Windows2003防黑客入侵:系统权限与安全配置
    nc使用方法
    突破安全狗的技术总汇
    入侵检测经验总结
    Temporary failure in name resolution:Illegal seek(转)
    各种在线编辑器漏洞
    Linux加固
  • 原文地址:https://www.cnblogs.com/konger/p/3896051.html
Copyright © 2020-2023  润新知