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

原文地址:https://www.cnblogs.com/wangle1001986/p/2645308.html