Android开发笔记(持续更新)

【Android部分】

1.
1)进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。
2)在idea.properties文件末尾添加一行: disable.android.first.run=true ,然后保存文件。
3)关闭Android Studio后重新启动,便可进入界面。
编辑完成可以先保存到桌面再拖到目录替换原文件。
disable.android.first.run=true

2.
1.src —java代码目录
2.gen —内容自动生成 R.java文件,在项目中添加的任何资源都会在其中生成相应的资源id
3.bin —编译好的安装包目录
4.libs —第三方Jar包目录
5.res —项目图片、布局、字符串等资源存放目录
6.AndroidMainfest.xml —项目的配置文件,四大组件注册文件
android里android.mk
1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件;Android.mk和需要编译的源文件在同一个目录下,定义形式:LOCAL_PATH:= (callmydir)LOCALPATH2)Android.mkinclude (CLEAR_VARS)开始,以include (BUILDXXX);include (CLEAR_VARS)——-CLEAR_VARS由编译系统提供,指定让GNU MAKEFILE为你清除除LOCAL_PATH以外的所有LOCAL_XXX变量

1.在重写父类的onCreate时,在方法前面加上@Override 系统可以帮你检查方法的正确性,而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate用方法setContentView(View)将自己的UI放到里面
2.requestWindowFeature(Window.FEATURE_NO_TITLE) —隐藏标题栏,这句代码一定要写在setContentView()之前执行
3.知晓当前是在哪一个活动
首先需要新建一个 BaseActivity 继承自Activity,然后在 BaseActivity 中重写 onCreate()方法,getClass().getSimpleName()获取了当前实例的类名,让 BaseActivity 成为项目中所有活动的父类,继承自 BaseActivity
4.随时随地退出程序
新建一个 ActivityCollector 类作为活动管理器
5.引入布局
通过一行 include 语句将标题栏布局引入进来
6.创建自定义控件
自定义控件解决重复编写代码的问题
7.dp、sp
在编写 Android 程序的时候,尽量将控件或布局的大小指定成 match_parent或 wrap_content,如果必须要指定一个固定值,则使用 dp 来作为单位,指定文字大小的时候使用 sp 作为单位,dp是密度无关像素,在不同密度的屏幕中显示比例将保持一致
8.制作 Nine-Patch 图片
Android sdk 目录下有一个 tools 文件夹,在这个文件夹中找到 draw9patch.bat 文件,使用它来制作 Nine-Patch 图片
在上边框和左边框绘制的部分就表示当图片需要拉伸时就拉伸黑点标记的区域,在下边框和右边框绘制的部分则表示内容会被放置的区域
9.数据存储
1)将数据存储到文件
2)将数据存储到 SharedPreferences
获取SharedPreferences对象:1)Context 类中的 getSharedPreferences()方法;2)Activity 类中的getPreferences()方法;3)PreferenceManager 类中的 getDefaultSharedPreferences()方法
3)SQLite 数据库存储
SQLiteOpenHelper 是一个抽象类,需要创建帮助类去继承它,有两个抽象方法,分别是onCreate()和onUpgrade(),还有 两 个 非 常 重 要 的 实 例 方 法 getReadableDatabase() 和getWritableDatabase()用于创建和升级数据库的
10.onPause():处理当离开你的活动时要做的事情。最重要的是,用户做的所有改变应该在这里提交
11.Activity的四种launchMode
standard模式是默认的启动模式,不用为配置android:launchMode属性即可
1)standard 不管有没有已存在的实例,都生成新的实例
2)singleTop 如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例
3)singleTask 如果发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前
4)singleInstance 启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入
12.LinearLayout(线性布局)
1)android:orientation属性指定排列方向 android:layout_gravity用于指定控件在布局中的对齐方式
2)LinearLayout的排列方向是horizontal时,只有垂直方向上的对齐方式才会生效,因为此时水平方向上的长度是不固定的,无法指定该方向上的对齐方式
3)android:layout_weight使用比例的方式来指定控件的大小,在手机屏幕的适配性方面起到非常重要的作用
13.Android菜单三种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)和子菜单(Sub Menu)
1)选项菜单(Option Menu)
创建步骤:①重写Activity的onCreateOptionsMenu(Menu menu)方法,首次打开菜单时该方法自动调用。②调用Menu的add()方法添加菜

单项(MenuItem),调用MenuItem的setIcon()方法为菜单项设置图标。③当菜单项(MenuItem)被选择时,onOptionsItemSelected()方

法来响应事件。
2)上下文菜单(Context Menu)
创建步骤:①重写Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项(MenuItem)。②重写onContextItemSelected

()方法,响应菜单点击事件。③调用registerForContextMenu()方法,为视图注册上下文菜单。
3)子菜单(Sub Menu)
创建步骤:①重写Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法添加子菜单项。②调用SubMenu的add()方法,

添加子菜单。③重写onContextItemSelected()方法,响应菜单点击事件。

14.对话框
创建步骤:①获得AlertDialog的静态内部类Builder对象,由该类来创建对话框。②通过Builder对象设置对话框的标题、按钮及按钮响应事

件。③调用Builder的create()方法来创建对话框。④调用AlertDialog的show()方法显示对话框。

15.提示信息(Toast)
创建步骤:①调用Toast的静态方法makeText()添加显示文本和时长。②调用Toast的show()显示。

16.事件处理
事件处理机制,包括事件、事件源和事件监听器
事件监听器:
单击事件(View.OnCliekListener):当用户触碰到某个组件或者方向键按下时产生该事件,该事件的处理方法是onClick()。
焦点事件(View.OnFocusChangeListener):组件得到或者失去焦点时产生该事件,事件处理方法是onFocusChange()。
按键事件(View.OnKeyListener):用户按下或者释放设备上的某个按键时产生,事件处理方法是onKey()。
触摸事件(View.OnTouchListener):设备具有触摸屏功能时,触摸屏产生该事件,事件处理方法是onTouch()。
创建上下文菜单事件(View.OnCreateContextMenuListener):创建上下文菜单时产生该事件,事件处理方法是onCreateContextMenu()。

17.自动完成文本框(AutoCompleteTextView)
需要为该组件设置要想显示资源的适配器(Adapter)。

18.选项卡(Tab)
使用步骤说明:
①在布局文件中使用FrameLayout和TabHost列出Tab组件及Tab中的内容组件
②Activity要继承TabActivity
③调用TabActivity的getTabHost()方法获得TabHost对象
④通过TabHost创建Tab选项

19.进度条(ProgressBar)———————————————————
1)对话框进度条
创建步骤:①重写Activity的onCreateDialog()方法,并在其中创建对话框。②调用Activity的showDialog(),显示进度条对话框
2)标题栏进度条
创建步骤:①调用Activity的requestWindowFeature()方法,获得进度条。②调用Activity的setProgressBarIndeterminateVisibility(

)方法显示进度条
3)水平进度条
创建步骤:①在布局文件中声明ProgressBar。②在Activity中获得ProgressBar实例。③调用ProgressBar的incrementProgressBy()方法增加或减少进度
20.日期、时间选择对话框(DatePickerDialog、TimePickerDialog)
创建步骤:①调用Activity的onCreateDialog()方法创建对话框。②分别在OnDateSetListener的onDateSet()方法和OnTimerSetListener()的onTimeSet()事件方法中更改日期和时间。③调用Activity的showDialog()方法显示对话框

【Java部分】

1.java环境变量的设置
进入环境变量配置窗口,在“用户变量”中,设置3项属性,JAVA_HOME、PATH、CLASSPATH(大小写无所谓)
JAVA_HOME:设为JDK的安装路径(如D:\Program Files\jdk1.7.0_71),此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依靠此变量)。
Path:使得系统可以在任何路径下识别java命令,设为:%JAVA_HOME%\bin。%JAVA_HOME%就是引用前面指定的JAVA_HOME变量。
CLASSPATH:Java运行环境加载类的路径,只有类在classpath中,才能被识别和加载,设为 .;%JAVA_HOME%\lib(注意前面的点号(.),点号表示当前路径)。
打开一个CMD窗口,输入“java -version”或者“javac”命令,看到很多说明信息,证明已经安装并配置成功了

2.JDK(Java Development Kit,Java开发工具箱) 的下载 :JDK有不同的版本(J2SE、J2EE、J2ME),初学Java,一般都选择J2SE。J2SE的下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

3.Eclipse的下载地址为:http://www.eclipse.org/downloads/

4.安装简体中文语言包:http://www.eclipse.org/babel/downloads.php
首先查看你当前安装的Eclipse的版本。
在Eclipse菜单栏中选择“Help –> About Eclipse”
将下载到的文件解压,得到一个名为eclipse的文件夹,它里面包含两个文件夹:features和plugins,复制features和plugins到你的eclipse安装目录,覆盖原程序文件即可通过命令行运行程序:打开CMD,cd 到源文件所在目录,通过 javac filename 命令完成编译,通过 java classname 命令来运行程序

5.Java API也有一个说明文档,入口地址:http://www.oracle.com/technetwork/java/api

6.Java import
import 只能导入包所包含的类,而不能导入包
为方便起见,我们一般不导入单独的类,而是导入包下所有的类,例如 import java.util.Java 编译器默认为所有的 Java 程序导入了 JDK 的 java.lang 包中所有的类(import java.lang.;),其中定义了一些常用类,如 System、String、Object、Math 等,因此我们可以直接使用这些类而不必显式导入。但是使用其他类必须先导入

7.java数据类型转换
自动数据类型转换 低—–>高 byte,short,char-> int -> long -> float -> double
强制数据类型转换 强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型

8.专门遍历数组
for( arrayType varName: arrayName ){
// Some Code
}

9.操作少量的数据使用 String;单线程操作大量数据使用 StringBuilder;多线程操作大量数据使用 StringBuffer。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值