欢迎使用CSDN-markdown编辑器
来源:互联网 发布:agv调度系统算法 编辑:程序博客网 时间:2024/06/11 01:04
1主界面log的布局,获取本地版本号
安全卫士
svn 1-11
1.增加代码的可读性
1.学习其他开源代码2.自己多思考,不断重构
2.代码的组织方式
业务逻辑模块组织代码
小米阅读- 阅读器 reader com.xiaomi.reader
- 分享 share com.xiaomi.share
- 便签 note com.xiaomi.note
根据代码的类型组织包结构
- 界面 com.itheima.mobilesafe.activities
- 服务 com.itheima.mobilesafe.services
- 业务逻辑 com.itheima.mobilesafe.engine
- 数据库 com.itheima.mobilesafe.db
- 数据库增删改查 com.itheima.mobilesafe.db.dao
- 工具类 com.itheima.mobilesafe.utils
- 自定义view com.itheima.mobilesafe.ui
3.splash界面的作用
1. 展现产品的logo,提升产品的知名度.2. 初始化应用程序的数据.3. 连接服务器,查找可更新的版本,自动更新4. 用户操作指南5. 新版本特性提醒
4.布局文件的命名规则
SplashActivity--->activity_spalsh.xmlXxxActivity---> activity_xxx.xml
5.获取应用程序版本号
//用PackageManager拿到PackageInfo,PackageInfo中的versionNamePackageInfo packinfo = context.getPackageManager().getPackageInfo( context.getPackageName(), 0);String version = packinfo.versionName;
6.源代码版本控制
- 安装VisualSVN Server——SVN服务器,一直下一步即可
- 导入仓库到服务器
1.在Repositories处右键,选择Import Existing Repository
2.选择Copy repository from another location,下一步
3.点击Browse,选择仓库路径,”代码/代码仓库/Repository/mobilesafe”,点击下一步
4.点击Import
5.点击Finish,导入完成 - 安装TortoiseSVN——SVN客户端,一直下一步即可
1.在想要检出代码的地方右键,选择SVN Checkout
2.URL of repository处填https://127.0.0.1/svn/mobilesafe/,地址也可以从SVN服务器的mobilesafe处右键选择Copy URL to clipboard拷贝
3.Checkout directory出填写检出代码要放的位置,然后点击OK
4.完成代码的检出 - 将代码更新到指定版本
1.mobilesafe文件夹出右键,选择Update to version
2.点击show log
3.点击左下角的show all
4.选择要更新的版本,点击OK
5.版本更新完成
7.应用自动更新的逻辑图
8.获取服务器版本号
//获取服务器地址String path = getResources().getString(R.string.url);URL url = new URL(path);//创建网络连接HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");conn.setConnectTimeout(5000);//发出请求,获得返回码int code = conn.getResponseCode();if(code ==200){ //获取服务器返回的流并进行解析 InputStream is = conn.getInputStream(); String result = StreamTools.readStream(is); //转化为json并解析出版本号 JSONObject json = new JSONObject(result); String serverVersion = json.getString("version"); Log.i(TAG,"服务器版本:"+serverVersion);}
9.将流转化为字符串
public static String readStream(InputStream is) throws IOException{ //ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型数组的缓冲区,缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()和 toString()获取数据 ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = -1; while((len = is.read(buffer))!=-1){ baos.write(buffer, 0, len); } is.close(); return baos.toString();}
10.弹出对话框
1.使用AlertDialog.Builder2.设置标题、信息、点击事件等3.调用show方法显示出来,调用dismiss方法消失
11.下载apk
1.使用开源框架xUtils2.使用HttpUtils的download方法,填入三个参数:服务器下载地址,手机中的存储位置、回调事件3.回调事件中有三个常用的方法:onSuccess下载成功、onFailure下载失败、onLoading更新下载进度xUtils补充http://my.oschina.net/u/1171837/blog/147544 作者博客
12.安装apk
1.调用系统的安装apk的界面,传入对应的参数2.具体实现方式Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.setDataAndType( Uri.fromFile(fileinfo.result), "application/vnd.android.package-archive");startActivity(intent);
13.应用程序的覆盖安装要满足的条件
1. 两个版本签名一致2. 两个版本包名一致
14.跑马灯效果的TextView
1. 系统的TextView不能获取焦点,使用自定义控件2. 继承TextView控件,重写isFocused方法,直接返回true,让其获取焦点3. 设置android:ellipsize="marquee"
15.旋转的黑马logo
1. 使用系统提供的属性动画2. 具体实现方式ObjectAnimator oa = ObjectAnimator.ofFloat(iv_home_logo, "rotationY", 45, 90, 135, 180, 225, 270, 315);oa.setDuration(3000);oa.setRepeatCount(ObjectAnimator.INFINITE);oa.setRepeatMode(ObjectAnimator.RESTART);oa.start();
详细代码逐步上传
Splash功能界面知识点
1. 自动更新逻辑
- 访问网络
//获取服务器地址
String path = getResources().getString(R.string.url);
URL url = new URL(path);
//创建网络连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(“GET”);
conn.setConnectTimeout(5000);
//发出请求,获得返回码
int code = conn.getResponseCode();
if(code ==200){
//获取服务器返回的流并进行解析
InputStream is = conn.getInputStream();
String result = StreamTools.readStream(is);
//转化为json并解析出版本号
JSONObject json = new JSONObject(result);
String serverVersion = json.getString(“version”);
Log.i(TAG,”服务器版本:”+serverVersion);
}
- 解析与拼装json
//拼装
JSONObject json = new JSONOBject();
josn.putString(String key,String value);
//解析
JSONObject json = new JSONObject(result);
String jsonValue = json.getString(String key);
4.获取应用的版本号
//用PackageManager拿到PackageInfo,PackageInfo中的versionName
PackageInfo packinfo = context.getPackageManager().getPackageInfo(
context.getPackageName(), 0);
String version = packinfo.versionName;
5.开源框架xUtils多线程下载的使用
1.使用开源框架xUtils
2.使用HttpUtils的download方法,填入三个参数:服务器下载地址,手机中的存储位置、回调事件
3.回调事件中有三个常用的方法:onSuccess下载成功、onFailure下载失败、onLoading更新下载进度
xUtils补充
http://my.oschina.net/u/1171837/blog/147544 作者博客
6. 对话框AlertDialog.Builder的使用
1.使用AlertDialog.Builder
2.设置标题、信息、点击事件等
3.调用show方法显示出来,调用dismiss方法消失
AlertDialog.Builder builder = new Builder(this);
builder.setCancelable(false);
builder.setTitle(“升级提醒”);
builder.setMessage(desc);
builder.setPositiveButton(“立刻升级”, new OnClickListener() {
//do something
}
builder.setNegativeButton(“下次再说”, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do something
}
});
builder.show();//显示
builder.dismiss();//消失
7.隐式意图安装apk
1.调用系统的安装apk的界面,传入对应的参数
2.具体实现方式
Intent intent = new Intent();
intent.setAction(“android.intent.action.VIEW”);
intent.addCategory(“android.intent.category.DEFAULT”);
intent.setDataAndType(
Uri.fromFile(fileinfo.result),
“application/vnd.android.package-archive”);
startActivity(intent);
8.svn版本控制的使用
一、安装VisualSVN Server——SVN服务器,一直下一步即可
二、导入仓库到服务器
1.在Repositories处右键,选择Import Existing Repository
2.选择Copy repository from another location,下一步
3.点击Browse,选择仓库路径,”代码/代码仓库/Repository/mobilesafe”,点击下一步
4.点击Import
5.点击Finish,导入完成
三、安装TortoiseSVN——SVN客户端,一直下一步即可
1.在想要检出代码的地方右键,选择SVN Checkout
2.URL of repository处填https://127.0.0.1/svn/mobilesafe/,地址也可以从SVN服务器的mobilesafe处右键选择Copy URL to clipboard拷贝
3.Checkout directory出填写检出代码要放的位置,然后点击OK
4.完成代码的检出
四、将代码更新到指定版本
1.mobilesafe文件夹出右键,选择Update to version
2.点击show log
3.点击左下角的show all
4.选择要更新的版本,点击OK
5.版本更新完成
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 1014. 福尔摩斯的约会 (20)
- Android Studio常用插件
- GOF-设计模式之ABSTRACT FACTORY(抽象工厂),BUILDER(生成器),FACTORY METHOD(工厂方法),PROTOTYPE(原型)以及SINGLETON(单例)
- kettle 资源库的一些问题
- 锤子发布会的那些梗-2016年10月18号
- 欢迎使用CSDN-markdown编辑器
- 基于OpenGL显示平台功能开发-概述篇
- jQuery选择器的奥妙
- ActiveMQ的环境搭建及使用
- Xilinx网站资源导读
- dp46 hdu 1506 Largest Rectangle in a Histogram
- 鸡啄米教程之VS2010/MFC编程入门教程之目录和总结
- 关于效率、程序与生活的一些思考
- 1015. 德才论 (25)——重载booloperator<(const struct &b)const{}