1. Application类(单态)简介:
1>基本上每一个应用程序都会有一个自己的Application,并让它继承自系统的Application类,然后在自己的Application类中去封装一些通用的操作。其实这并不是Google所推荐的一种做法,因为这样我们只是把Application当成了一个通用工具类来使用的,而实际上使用一个简单的单例类也可以实现同样的功能
2>在创建新的Applicatioin类后,必须使用一个name属性在Manifest的application节点中注册它,示例代码如下: <application android:icon="@drawable/icon" android:name=".MyApplication"> [...Manifest nodes...]</application>
3>在应用程序开始运行的时候,Application实现将会得到实例化。创建新的状态变量和全局资源,以便从应用程序组建中进行访问
2. Context简介:
1>Context理解为“上下文”或者“场景”
2>示例理解:一个Android应用程序,可以理解为一部电影或者一部电视剧,Activity,Service,Broadcast Receiver,Content Provider这四大组件就好比是这部戏里的四个主角:胡歌,霍建华,诗诗,Baby。他们是由剧组(系统)一开始就定好了的,整部戏就是由这四位主演领衔担纲的,所以这四位主角并不是大街上随随便便拉个人(new 一个对象)都能演的。有了演员当然也得有摄像机拍摄啊,他们必须通过镜头(Context)才能将戏传递给观众,这也就正对应说四大组件(四位主角)必须工作在Context环境下(摄像机镜头)。那Button,TextView,LinearLayout这些控件呢,就好比是这部戏里的配角或者说群众演员,他们显然没有这么重用,随便一个路人甲路人乙都能演(可以new一个对象),但是他们也必须要面对镜头(工作在Context环境下),所以Button mButton=new Button(Context)
是可以的。虽然不很恰当,但还是很容易理解的,希望有帮助。
3. logUtil简介:
1.用处
1.1 应用程序出现问题时,希望能够收集到出现异常的原因进行分析,因此可以把log
日志保存到一个文件中,放在sd卡程序创建的目录下;也可以在用户联网的情况下,
在应用程序的后台把出现异常的log日志文件上传到服务器端,方便程序员进行分析,
从而解决bug.
1.2 当程序出现错误时,希望这个Log类帮我们定位到是哪个类的哪个方法,甚至是哪一行
出现了错误,给我们的调式带来很大的便利.
2.使用方法:Log.i Log.w Log.e Log.v Log.d
4.监听控件的方法:
1.1 为控件设置id同时为其绑定监听
1.2 为控件设置onClick属性同时创建对应的方法,点击控件时触发对应的方法
5. .jar与.aar区别?
1> *.jar,JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。找一个jar文件,然后修改后缀名为‘zip’或者‘rar’格式,然后解压该文件,打开解压后的文件夹,截图如下所示:
点击‘com‘文件夹就会看到里面全部是‘.class’文件。
2>
*.aar,AAR(Android Archive)包是一个Android库项目的二进制归档文件。我们随便找一个aar文件,然后修改后缀名为‘zip’或者‘rar’格式,然后解压该文件,打开解压后的文件夹,截图如下所示:(每个aar解压后的内容可能不完全一样,但是都会包含AndroidManifest.xml,classes.jar,res,R.txt)
*.aar文件中包含所有资源,class以及res资源文件。
6. JNI与NDK区别?
1>JNI介绍
- 定义:
Java Native Interface
,即Java
本地接口 -
作用: 使得
Java
与 本地其他类型语言(如C、C++
)交互即在
Java
代码 里调用C、C++
等语言的代码 或C、C++
代码调用Java
代码 -
特别注意:
JNI
是Java
调用Native
语言的一种特性JNI
是属于Java
的,与Android
无直接关系
2> NDK介绍
- 定义:
Native Development Kit
,是Android
的一个工具开发包NDK是属于
Android
的,与Java
并无直接关系 - 作用:快速开发
C
、C++
的动态库,并自动将so
和应用一起打包成APK
即可通过NDK
在Android
中 使用JNI
与本地代码(如C、C++)交互 -
应用场景:在Android的场景下 使用JNI
即
Android
开发的功能需要本地代码(C/C++)实现
7. .so文件在eclipse和as中的存放位置的区别?
ec:libs -> armeabi(.so) -> .jar
as:libs(.jar)
src -> main -> jniLibs -> armeabi(.so)
8.Intent 写法:
1> Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
2> Intent intent = new Intent();
intetn.setClass(this,SecondActivity.class);
this.startActivity(intent);
3> startActivity(new Intent(MainActivity.this,SecondActivity.class));
9.设备上创建你文件夹
// 文件保存路径
public static final String savePath = Environment
.getExternalStorageDirectory().getPath() + "/EAPP/hxbank/";
// 创建程序文件存放跟目录
File saveFile = new File(savePath);
if (!saveFile.exists()) {
saveFile.mkdirs();
}
10.零散知识点总结
1>常见的图形化操作
*ddms *devices *screen capture
*File Explorer *logcat *console
2>adb常用操作
*sdk manager *avd manager
*adb环境变量配置
*adb常用命令
1)adb viersion 查看adb的版本
2)adb devices 查看当前所有连接上的设备信息
3)adb shell 来到模拟器或真机的控制台
4)ls 查看目录信息
5)ps 查看当前运行进程信息
6)kill pid 杀死进程
7)ctrl + F11 模拟器横竖屏切换
*adb常见问题
1)connection attempts:1?
(adb kill-server->adb start-server)
2)讲电脑上apk安装到手机上
adb install apk所在目录(直接拖拽)
adb uninstall[包名]
3>点击事件的几种写法
1)在某一个view对象,被点击的时候调用的回调方法
button.setOnClickListener(new MyButtonClickListener());
private class MyButtonClickListener implements OnClickListener{}
2)通过匿名内部类的方式实现点击事件
button.setOnClickListener(new OnClickListener(){});
3)类实现点击接口
button.setOnClickListener(this);
activity implement onClickListener
public void onClick();
4)button自带属性
android:onClick="dail"
public void dail(View v){};
4>代码逻辑追踪
1)syso
2)Log.
3)debug
5>代码部署到真实手机
1)下载适合手机的驱动
6>断点调试
*打断点(双击需要断点的代码行)
*debug as->android application
*选择打断点的行的变量->右击watch
*step over
*resume继续执行
7>apk文件的打包过程