android知识点总结

1,Android UI体系
1) 三层架构、MVC、MVP、MVVM
对于小项目可以按如下分法
常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情 。
分为内部存储和外部存储 , 如果应用程序有数据需要共享时,就需要使用Content Provider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作 。
2)【Java学习】Java内存
3)【Android学习】DVM——apk生成、安装、启动、反汇编
4)【Android学习】NDK编程——JNI【Android学习】序列化:Serializable和Parcelable
6)【Android学习】消息机制Handler
7)【Android学习】线程的其他方式:AsyncTask、IntentService、HandlerThread、ThreadPoolExecutor
8)【java学习】多线程并发
9)【java学习】java锁
10)资源池
Android中提供了资源池的对象有:
–Message
提供了消息池 , 有静态方法Obtain从消息池中取对象 。
–AsynTask
AsynTask是线程池改造的,池里 默认提供布局优化、自定义View优化
删除布局中无用的控件和层级
有选择地使用性能较高的ViewGroup
用<include>标签、<merge>标签、ViewStub
2)activity启动优化
耗时操作优化
布局文件优化
视图加载优化 。如:Fragment的懒加载,只有显示时才去加载 。
3)列表优化
尽量复用convertview历史的缓存,减少创建新的view对象 。
尽量的减少子孩子的id的查询次数 , 定义一个viewHolder 。
4)内存优化
5)图片缓存
图片的三级缓存机制
11,项目管理
项目管理-Git使用
项目管理-SVN学习
12,应用
1)token登录
①定义
Token是服务端生成的一串字符串 , 以作客户端进行请求的一个令牌 , 当第一次登录后 , 服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码 。
②作用
Token的目的是为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮 。
Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比 , 判断用户名和密码正确与否,这样增加了服务器负担 。
③应用
i>用户首次登录成功之后, 服务器端就会生成一个 token 值,保存在数据库并返回给客户端.
ii>客户端拿到 token 值之后,使用sp进行保存 。
iii>客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个 token 值附带到参数中发送给服务器.
iv>服务器接收到客户端的请求之后,取出token值与保存在本地(数据库)中的token值做对比
如果两个 token 值相同,说明用户处于登录状态 。
如果没有这个 token 值,没有登录成功 。
如果 token 值不同: 说明原来的登录信息已经失效,让用户重新登录 。
2)登录验证
通过.requestFocus()获得焦点 , 提高用户体验
String Str_name = et_username.getText().toString().trim();
String Str_psw = et_password.getText().toString().trim();
if (null != Str_name && Str_name.equals(\”\”)) {
showCustomToast(\”用户名不能为空\”);
et_username.requestFocus();
} else if (null != Str_psw && Str_psw.equals(\”\”)) {
showCustomToast(\”密码不能为空\”);
et_password.requestFocus();
} else if (Str_psw.contains(\”d\”)) {
showCustomToast(\”密码不能含有特殊字符\”);
et_password.requestFocus();
} else if (Str_psw.length() < 6) {
showCustomToast(\”密码不能少于6位\”);
et_password.requestFocus();
} else {
tryLogin(Str_name, Str_psw);
}
1234567891011121314151617
3)GPS开启
检测GPS是否开启,如果没有则跳到GPS界面供用户开启 。
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
// 判断GPS是否正常启动
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
ToastUtil.showShort(context, \”未开启位置服务,请开启GPS导航\”);
// 返回开启GPS导航设置界面
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent, 0);
return;
}
12345678910
4)其他demo
android离线日志文件打印
检测android主屏 , 并把app从后台切换置前台
保持屏幕常亮
断线重连机制
13,问题解决
1)eclipse找不到设备,adb需要重启
写一个.bat文件,内容如下:
(注意:cd /d D:\\android-sdks\\platform-tools 请替换为自己的adb.exe路径)
@echo off
taskkill /F /IM adb.exe
echo Kill完成…
pause
echo 重启开始…
cd /d D:\\android-sdks\\platform-tools
adb devices
pause. & exit
12345678910
2)其它
①android中使用Menu时可能需要重写的方法有:onCreateOptionMenu()和onOptionItemSelected().
②eclipse编辑器乱码解决
configChanges详解-之解决问题:手机切换字体后,app异常崩溃
eclipse创建app时多出appcompat_v7
android开发误删appcompat_v7
Replace “…” with ellipsis character (…, &&;
eclipse ‘Launching Hello’has encountered a problem
【android知识点总结】以上就是朝夕生活(www.30zx.com)关于“android知识点总结”的详细内容,希望对大家有所帮助!

猜你喜欢