zoukankan      html  css  js  c++  java
  • android 基础知识总结

    1、在eclipse中,可以启动两个Android AVD,步骤是:

    (1)在AVD Manager中建两个AVD;

    (2)在AVD Manager中选择一个AVD启动,在eclipse的项目上选择运行一个项目,这个项目的Run Configuration配置在另外一个AVD上运行。

    2、 在字符串资源和布局资源下面,可以添加任意个xml文件,在R.java中可以做相应的引用。只不过,我们习惯于在string.xml中存放所有的字符串定义。

    3、Android中的关键资源:

    颜色资源<color name=”red”>#f00</color>

    字符串资源:<string name=”app”>Test</string>

    尺寸资源:<dimen name=”mysize_in_pixels”>1px</dimen>

    图像资源:BitmapDrawable类

    位图资源:ColorDrawable 或者GradientDrawable类

    任意XML资源:res/xml/*.xml

    任意原始资源:res/raw/*.*      InputStream获取

    任意原始资产:assets/*.*/*.*   AssetManager InputStream

    4、 Android的命令行:

    (1)  列出模拟器列表命令:“\tools\android list avd”

    (2)  启动模拟器命令:“\tools\emulator.exe @avdname ”, 其中参数avdname是AVD的名称。

    5、adb、Shell和SQLITE

    (1)adb:Android Debug Bridge,Android调试桥。一个命令行工具,设备上的远程shell。

    (2)查看正在运行的设备列表命令:\tools\adb  devices

    (3)查看adb帮助命令:\tools\adb help

    (4)使用adb在连接的设备(模拟器)上打开一个shell:\tools\adb shell

    (5)将sqlite数据库contacts2.db下载到本地机器下,然后用SQLite3的任何GUI工具分析数据库。下载到c盘的命令是:adb pull /data/data/com.android.providers.contacts/databases/contacts2.db c:/contacts2.db

    (6)我们使用Sqliteman(http://sqliteman.com/),这是一个使用SQLite数据库的GUI工具,能很好地运行。

    (7)Shell总结:

    A、#号是shell提示符。

    B、查看shell中可用的命令集,使用命令:

    #ls  /system/bin

    C、查看根级目录和文件,使用命令:

    #ls –l

    D、查看数据库列表,使用命令:

    #ls /data/data

    E、此目录包含设备上安装的包的列表,我们看一个示例,分析一下com.android.providers.contacts包,使用命令:

    #ls /data/data/com.android.providers.contacts/databases

    此命令列出数据库文件contacts2.db,它是一个SQLite数据库。

    F、Shell中不能运行find命令,可以查看所有的*.db文件,使用命令:

    #ls –R /data/data/*/databases

    (8)SQLite总结:

    A、通过在adb shell内部键入以下命令,可以在contacts2数据库上调用sqlite3:

    #sqlite3 /data/data/ com.android.providers.contacts/databases/contacts2.db

    注意:adb shell的提示符是#,sqlite3的提示符是sqlite>.

    B、键入以下命令,可以看到一组表:

    sqlite> .tables

    C、可以使用sql语句在sqlite3中,比如:

    sqlite> select * from table1

    sqlite> select count(*) from table1

    sqlite> select col1, col2 from table1

    sqlite> select distinct col1 from table1

    D、退出sqlite3的命令:

    sqlite>.exit

     

    6、ContentProvider知识::

    (1)    android内部URI的结构:以content开头,具体通用形式:

    content://*/*/* 或者

    content://authority-name/path-segment1/path-segment2/etc…

    (2) .....

     .....

    7、服务(Service)

         Android支持两种类型的服务:本地服务和远程服务。本地服务无法供在设备上运行的其他应用程序访问。一般而言,这些服务类型仅支持承载该服务的应用程序。而对于远程服务,除了可从承载服务的应用程序访问,还可以从其他应用程序访问。远程服务使用AIDL(Android Interface Definition Language, Android接口定义语言)向客户端定义自身。

          本地服务由Context.startService()启动,启动之后,这些类型的服务将持续运行,直到客户端调用服务的Context.stopService()或者服务自己调用stopSelf()。我们在服务的onCreate()而不是onStart()方法中创建和启动线程。

          对于远程服务,从客户端应用程序调用远程服务,必须调用bindService()方法,而不是startService()方法。而对于断开远程服务,需要使用unbindService()方法。

          尽管很容易想到服务可以调用活动,但是服务绝不应该直接调用活动。服务应该创建一个通知,让用户通过通知了解期望的活动。

    8、调试中,显示错误:“newInstance failed: Lcom/xuanxiu/Android/MyProjectActivity; not accessible to Landroid/app/Instrumentation;”

         解决方法:在AndroidManifiest.xml中注册该activity,并且确保这个类的声明是是public

  • 相关阅读:
    earlycon 的使用【转】
    DDR工作原理【转】
    DDR工作时序与原理【转】
    kernel内存、地址【转】
    Linux时间子系统之定时事件层(Clock Events)【转】
    QEMU 2.10.1 编译安装【转】
    Kernel 内核调试【转】
    The Slab Allocator in the Linux kernel【转】
    Linux内存管理:slub分配器【转】
    linux内存管理笔记(二十七)----slub分配器概述【转】
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/2645308.html
Copyright © 2011-2022 走看看