Mac下配置安卓开发环境

1.下载
android-sdk_r10-mac_x86 3.0.zip(原因是因为不能下载!!!所以只好下载这个,然后更新!!!需要的可以留言给我)
eclipse-java-juno-SR2-macosx-cocoa.tar.gz
jdk-7u17-macosx-x64.dmg

2.安装sdk目录要选好

3.配置环境变量(我实用的zsh,所以修改的是zhsrc文件,你用bashrc就修改对应文件即可!注意linux也是这样的)

export PATH=${PATH}:/Users/Baipin-iOS-Testing/baipin/android/androdiSdk/tools:/Users/Baipin-iOS-Testing/baipin/android/androdiSdk/platform-tools

source .zshrc 立即生效

安卓开发之数据共享

一、数据共享作用

当我们需要把应用程序的数据共享给其他应用程序(当然有的可能会混淆SharedPreferences)这个时候需要用到安卓开发中另外的一个组件(ContentProvider),这样的组件是不论程序是否启动,其他应用程序都可以通过该接口操作应用程序内部数据。而SharePreferences需要授权才能读写

二、配合组件ContentResolver

ContentProvider提供了接口可以访问或者修改数据,而其他应用可以使用ContentResolver提供不同的访问来请求指定数据

三、如何提供ContentProvider

1、定义一个ContentProvider继承ContentProvider

2、在AndroidManifest.xml文件注册(需要android:anthorities属性)

四、使用ContentProvider

1、介绍Uri

1.1、安卓访问Uri比如:content://study.provider/book(这里的book是请求对象是可以改变的,content是固定格式,中间部分是那个注册ContentProvider时候的那个authority属性值)

2、使用ContentResolver操作数据

2.1常见方法

getContentResolver()insert()delete()update()query()

步骤:调用ActivitygetContentResolver方法获取ContentResolver对象,根据需求调用不同的操作数据方法即可

五、常见内部ContentProvider

ContactsContract.Contacts.CONTENT_URI管理联系人

MediaStore.Audio.Media.INTERNAL_CONTENT_URI手机内音频文件

MediaStore.Images.Media.EXTERNAL_CONTENT_URI存储SD中的图片

六、监听ContentProvider数据改变

我们需要监控到ContentProvider提供数据的动态变化那么就需要使用ContentObserver(自行查看手册)

安卓开发之简单组件使用

一、TextView组件(文本框)

<TextView

android:id=”@+id/firstText”

android:text=”第一行

android:gravity=”top”

android:textSize=”15pt”

android:background=”#ff0000″

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:paddingLeft=”10dip”

android:paddingTop=”20dip”

android:paddingRight=”30dip”

android:paddingBottom=”40dip”

android:layout_weight=”1″

android:singleLine=”true”

/>

1、 直接继承ViewEditTextButton的父类;其中TextViewxml属性很多具体参考手册即可;

2、 由于TextView中只用于显示文字,如果图文混合可以绘制一个drawable对象即可

xml属性对照(部分)

android:autoLink是否将符合指定格式的文本转换可单击的超链接形式(webemailphonemapallnone

android:cursorVisible设置文本框中的光标是否可见

android:drawableTop在左侧绘制一个图像

android:editable是否可以编辑

android:ellipsize超过框长度如何处理(五个属性)

android:gravity设置文本框内文本对齐方式

android:hint文本框内容为空时,默认显示文字

android:password文本框是一个密码框

android:phoneNumber文本框只能输入数字

android:scrollHorizontally:设置文本框不够显示全部内容是否允许水平滚动

android:selectAllOnFocus:文本内容可选择,一般配置hint使用

android:single设置文本是否是单行模式

二、Button组件ImageButton(按钮)

三、EditText组件(编辑框)

四、RadioGroup组件(单选组)RadioButton组件(单选框)

五、CheckBox组件(多选框)

六、ToggleButton(状态开关)

七、ImageView(图像)

 

安卓开发之环境搭建

第一步:安装JDK

安装JDK(有的直接进入安装SDK安装,这里说明下,必须先有JDK才可以)

安装JDK路径:D:\android\jdk

设置:我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:

JAVA_HOME值为: D:\android\jdk(你安装JDK的目录

CLASSPATH.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;

注意:这里前面有个.;

Path:  在开始追加 %JAVA_HOME%\bin;

 

备注:这个不是必须的

测试JDK是否成功安装,在命令行输入java –version

安卓开发环境搭建

安卓开发之玩美解决ADT和SDK不一致问题

提示:This Android SDK requires Android Developer Toolkit version 21.1.0 or above.  Current version is 21.0.1.2012-12-6-2-58.  Please update ADT to the latest version.

这样的提示是由于SDK的版本号和ADT版本不符合,会早场AVD等打不开

方案1:更新ADT

  1. 在线更新(貌似最最)

在Help菜单中,选择software update…,选对available software,点击右侧的add site…,输入下载地址hhtps://dl-ssl.google.com/android/eclipse/

  1. 离线更新(强烈推荐)

下载ADT   http://developer.android.com/intl/zh-CN/sdk/installing/installing-adt.html#Download

下载之后不要解压(其实官网上已经有说明了)

直接复制过来给大家

  1. Start Eclipse, then select Help > Install New Software.
  2. Click Add, in the top-right corner.
  3. In the Add Repository dialog, click Archive.
  4. Select the downloaded ADT-21.1.0.zip file and click OK.
  5. Enter “ADT Plugin” for the name and click OK.
  6. In the Available Software dialog, select the checkbox next to Developer Tools and click Next.
  7. In the next window, you’ll see a list of the tools to be downloaded. Click Next.
  8. Read and accept the license agreements, then click Finish.

If you get a security warning saying that the authenticity or validity of the software can’t be established, click OK.

  1. When the installation completes, restart Eclipse.

方案2:降低SDK

修改D:\android\IDE\sdk\tools\lib目录下的plugin.prop文件中的21.1.0更改为20.1.0

安卓开发之应用资源

一、安卓应用源代码分类:界面布局文件、Java源文件、资源文件

二、应用资源文件分类

一类是无法直接访问的资源,保存在assets目录下;另外一类是可以用R资源清单访问,保存在res目录下

三、资源分类

/res/anim存放定义补间动画的xml文件

/res/color/定义不同状态下的颜色列表

/res/drawable-XXX/存放各种图

/res/layout/存放各种用户界面的布局文件

/res/menu/存放应用程序各种菜单的资源

/res/raw/该目录下存放任意类型的原生资源(不建议使用)

/res/values/存放各种值

/res/xml/原生xml文件

Continue reading

安卓开发之文件操作

一、Context提供两个方法:

FileInputStream openFileInput(String name):打开应用数据文件夹下的name作为输入流

FileOutputStream openFileOutput(String name,int mode):打开对应文件的输出流

mode的参数如下

MODE_PRIVATE:该文件只能被当前程序读写

MODE_APPEND:追加打开的文件

MODE_WORLD_READABLE:文件的内容可以被其他应用程序读取

MODE_WORLD_WRITEABLE:该文件的内容可由其他程序读写

getDir(String name,int mode):获取或者创建对应的子目录

File getFilesDir():获取应用程序的数据文件夹的绝对路径

String[] fileList():返回应用的数据文件夹下所有文件

deleteFile(String):删除数据文件夹下指定文件

Continue reading

安卓开发之SharedPreferences使用

  1. Sharedpreferences保存数据类似配置信息格式的数据,使用简单类型的key-value对
  2. 主要方法有:

Boolean contains(String key):判断是否包含特定的key的数据

abstract Map<String,?> getAll():获取数据全部键值对

Boolean getboolean(String key, Boolean defValue):获取数据里指定key对应的value,如果不存在返回默认的值(其中boolean替换成float、int、long、String等也可以使用)

由于SharedPrefences不能写入数据,需要调用edit方法获取对应的Editor对象

Sharedpreferences.Editor clear():清空Sharepreferences中所有数据

Sharedpreferences.Editor putString(String key,String value):想Sharedperferences存入数据其中String也可以替换其他数据类型

Sharedpreferences.Editor remove(String key):删除指定key对应数据项

Boolean commit():当Editor编辑完成调用该方法提交修改

  1. 使用SharedPreferences

由于SharedPreferences本身是接口,所以不能直接使用,只能通过Context提供的方法getSharedPreferences(String name,int mode)获取

其中mode有三种格式(本应用程序可读可写,其他应用程序可读不可写,其他应用程序可读可写)

注意设置的数据会保存在/data/data/包名/shared_prefs目录下的xml文件中

  1. 统计应用程序使用次数

实例代码:sharedpreferences = getSharedPreferences(“count”,MODE_PRIVATE);

//读取count数据

int count =sharedpreferences.getInt(“count”, 0);

//显示程序使用次数

Toast.makeText(this, “程序使用次数:”+count+”次。”, 1000).show();

Editor edtior = sharedpreferences.edit();

//存入数据

edtior.putInt(“count”, ++count);

//保存修改

edtior.commit();

  1. 读取其他应用中的SharePreferences

步骤:

1)  创建其他程序对应的context

2)  调用其他应用程序中的context获取对应SharedPreferences对象

3)  如果需要修改其他应用的SharedPreferences数据,那需要调用edit方法写入即可

注意:这里需要在其他应用中设置SharedPreferences的时候需设置成可MODE_WORLD_READABLE(其他应用可读方式)或者MODE_WORLD_WRITEABLE(其他应用可以可读可写方式)

我们需要在程序中保存少量数据放便在以后使用可以使用SharedPreferences来操作

 

安卓开发之事件

事件处理:提供为用户动作响应的机制

Android提供两种方式的事件处理

一、基于回调的事件处理

二、基于监听的事件处理

事件监听处理模型中三类对象:

  1. 事件源:EventSource通常是组件(按钮,窗口,菜单)
  2. 事件:Event通常是用户的操作
  3. 事件监听器:Event Listener通常是对不同事件做出的响应
  4. 实现事件监听器如下几种形式:

4.1内部类形式:将事件监听器定义成当前类的内部类

4.2外部类形式:将事件监听器定义成一个外部类

4.3 Activity本身作为一个事件监听器类:让Activity本身实现监听器接口,并实现事件处理方法

4.4 匿名内部类形式:使用匿名内部类创建事件监听器对象(推荐使用)

三、两种事件处理知识点

  1. 基于回调的事件处理可用于处理一些具有通用性的事件,这样的代码会简洁很多
  2. 基于监听的事件处理中可以直接在界面布局文件中指定标签绑定事件处理方法

 

安卓开发之Activity

一、Activity的作用

Activity作用就是和用户进行交互;

Activity间接或者直接集成Context、ContextWrapper、ContextTheme、Wrapper等基类

有的时候Activity只用集成Activity的子类(——代表子类)

AccountAuthenticatorActivity实现账户管理界面

ActivityGroup——TabActivity实现Table界面

ListActivity,实现列表界面

——LauncherActivity一个列表项对应一个Activity

——PreferenceActivity实现程序参数设置、存储界面

AliasActivity启动其他Activity结束自己

ExpandableListActivity实现可展开列表界面

FragmentActivity多ui界面

NativeActivity 使用C/C++在NDK环境中处理Activity的生命周期

Continue reading