Android 数据库升级完整解决方案

背景: app升级,我们数据库发生改变的情况,如新增一张表、改变某张表中的字段名、添加一个新的字段等一系列表结构的改变 解决方案 1. 卸载当前版本,安装最新版的; 这种会造成数据丢失,基本不会考虑 2. 更新数据库; 更新数据库 情况1. 用户每次都更新应用,也就是数据库一级一级更新 v1到v2 v2到v3 情况2.用户好久没更新 跨版本升级 newVersion 6 oldversion2 方式1. 从2 依次升到3 到4 到6 方式2. 确定好2 和6 之间的数据库差异 直接由2的数据库
分类: 其他 发布时间: 04-29 23:43 阅读次数: 0

android view 坐标系

一. 坐标系分类 Android 中的坐标系可以分为三类: 屏幕坐标系, 布局坐标系, 以及视图坐标系. 1.屏幕坐标系: 该坐标系是以屏幕的左上角为原点(0, 0), 水平向右代表 x 方向的正方向, 垂直向下代表 y方向的正方向 2.布局坐标系: 该坐标系是以 viewgroup 的左上角为坐标原点, 水平向右代表 x 方向的正方向, 垂直向下代表 y 方向的正方向, view 的坐标是在 layout 布局过程中做确定的. 也就是view在viewgroup中的位置 3.视图坐标系: 该
分类: 其他 发布时间: 04-29 23:43 阅读次数: 0

Android中getwidth()和getMeasuredWidth()的区别

getMeasuredWidth()获取的是view测量后的大小(onmeasure),getWidth()获取的是这个view最终显示(区域)的大小(父布局的Onlayout有关) 我们自定义view的时候 可以在 onMeasure()方法中获取到xml中的大小, int widthMode = MeasureSpec.getMode(widthMeasureSpec); int widthSize = MeasureSpec.getSize(widthMeasureSpec); 然后我们
分类: 其他 发布时间: 04-29 23:42 阅读次数: 0

Android IPC机制简介

IPC 是Inter-Process-Communication 的缩写,含义为进程间通讯或者跨进程通信,是指两个进程间进行数据交换的过程。 理解两个概念 线程 是CPU调度的最小单元,同时线程也是一种有限的系统资源 。 进程一般是指一个执行单元,在pc端或者移动端对应表示一个程序或者一个应用。 进程和线程的关系 一个进程可以包含多个线程。一个进程可以只有一个线程,即主线程。如果在主线程进行耗时操作 会造成界面 无响应,在pc系统和移动系统中都存在,在android出现这种情况 名字叫做ANR
分类: 其他 发布时间: 04-29 23:42 阅读次数: 0

android LayoutInflater.inflate()的参数理解

LayoutInflater.inflate()的作用就是将一个xml定义的布局文件实例化为view控件对象(也是一个布局文件); LayoutInflater.inflate是加载一个布局文件; findViewById则是从布局文件中查找一个控件; 一.获取LayoutInflater对象有三种方法 LayoutInflater inflater=LayoutInflater.from(context); LayoutInflater inflater=getLayoutInflater(
分类: 其他 发布时间: 04-29 23:42 阅读次数: 0

Activity 的启动模式

我们知道,默认情况下,当我们多次启动同一个activity时,系统会创建多个实例并把他们一个个放入任务栈,当我们按back键,这些activity又会一个个退出。任务栈是一种后进先出的栈结构。在Android中是使用任务(Task)来管理Activity的,任务就是存放在栈里面的Activity的集合,这个栈就是称为任务栈。启动一个activity的时候就会用到栈。 一,Activity的LaunchMode 目前Activity有四种启动模式:standard、singleTop、singl
分类: 其他 发布时间: 04-29 23:42 阅读次数: 0

网上创建git 仓库并提交代码上去

我这里用的是码云 第一步 登陆码云成功 点击 加号然后创建一个git项目 下面的readme 一定要勾选,不然 是另一种模式,对于初学者还是要勾选。 然后克隆地址 ,不管是用source tree 还是用studio 的git 然后都要先从 克隆地址下载到本地 ,这样就算是和网上仓库的版本统一了, studio 直接import from git 就可以下载到本地了。 然后 我们把要上传的项目 复制到 下载到本地的文件夹 编写 .gitignore *.iml .gradle /local.p
分类: 其他 发布时间: 04-29 23:41 阅读次数: 0

android 进程的理解

Android的进程主要分为以下几种: 首先说的进程就是一个应用,这里说的是一个应用级别。 1.前台进程 1.用户正在交互的 Activity(已调用 Activity 的 onResume() 方法) 当前用户可以触摸的 就属于前台进程 也就是用户正在用的应用 2.前台进程 关联 的其他进程也属于前台进程 (比如当前进程用到了其他进程的东西,其他进程也就成了前台进程,不然他被杀了,当前的进程会出问题) 3.一个应用来通知了,或者发送了一个通知,即便这时候回到桌面,这个有通知的进程 (应用)也
分类: 其他 发布时间: 04-29 23:41 阅读次数: 0

webrtc for window源码下载及编译

首先介绍一下目标:是为了下载 windows 平台的webrtc源码 并编译成 vs 的项目 以下步骤,内容均为实测使用,可能不是最好的,但是实际可用 https://webrtc.org/native-code/development/ 我的电脑环境 系统环境:win7 vs版本:vs2017 第一步:在客户端使用ShadowSocks作为代理!翻墙用的。 使用“全局模式”; 第二步:depot_tools配置 http://commondatastorage.googleapis.com/
分类: 其他 发布时间: 04-29 23:41 阅读次数: 0

webrt源码示例demo 演示展示

上一篇文章写到了webrtc 源码的下载及编译成vs2017的项目的过程。 但是变成vs2017的项目后具体怎么运行出来,看到demo实际的运行效果,简直是一头雾水,接下来就讲解一下怎么看到实际的效果。 第一步:找到源码里面examples 文件夹 下的Peerconnection_client 和Peerconnection_server这两个模块 第二步:然后右击 一个一个的右击 将两个生成好之后 就可以到 out/default文件夹下找到这两个exe文件,先启动Peerconnecti
分类: 其他 发布时间: 04-29 23:41 阅读次数: 0

HttpURLConnection中getInputStream()异常java.io.FileNotFoundException

在项目中遇到了一个HttpURLConnection网络请求报异常的问题 java.io.FileNotFoundException 后来通过log 定位到具体得问题出现在 urlConnection.getInputStream()上 分析原因为: HttpURLConnection POST请求时候,当getResponseCode为HttpURLConnection.HTTP_OK(200)和HttpURLConnection.HTTP_CREATED(201)时可以正常连接。但是当ge
分类: 其他 发布时间: 04-29 23:40 阅读次数: 0

AndroidStudio2.0指定输出apk名字版本号

AndroidStudio2.0指定输出apk名字版本号
分类: 移动开发 发布时间: 04-29 23:40 阅读次数: 0

隐藏很深得EXCEL技巧

  1.比图表还牛的数据对比技巧      2.快速输入26个英文大小写字母      3.快速查找替换通配符问号(?)和星号(*)      4.快速输入每月的最后一天      5.更改工作表网格线颜色    
分类: 企业开发 发布时间: 04-29 23:40 阅读次数: 0

dialog弹出但是不显示

在做项目中发现一个问题,就是在应用中点击出现dialog 然后唤起文件管理器,然后播放视频后,回到原应用后同样的点击 dialog 不显示,但是实际已经出现在屏幕上,只是看不到,dialog里面的按钮事件都存在。 解决方案 添加如下两个权限。 <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" /> <uses-permission android:name="android.permission.
分类: 其他 发布时间: 04-29 23:40 阅读次数: 0

Android 5.0 以下截屏方案测试

最近在项目中做视频通话的屏幕共享的功能,需要用到屏幕采集的功能,由于5.0以上版本系统有api所以实现比较简单,做5.0以下版本时候真的是很痛苦,一下列举一下我尝试的方法。 方法一:利用SDK提供的View.getDrawingCache()方法。 public static Bitmap capture(Activity activity) { activity.getWindow().getDecorView().setDrawingCacheEnabled(true);
分类: 其他 发布时间: 04-29 23:40 阅读次数: 0

百度地图集成 地图、定位、周边位置检索

开发中需要集成百度地图,用到三个功能 1.点开地图定位当前位置。 2.地图中间点定位图标显示,滑动地图定位图标始终在地图中间。 3.根据上面定位图标,检索出附近位置信息。 效果图 拖动地图位置后 1.首先先申请百度账号,并申请AK,等信息并下载sdk 官网地址 http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio 选择需要的服务,我用到了这三种服务 然后 开始集成, 第一步:根
分类: 其他 发布时间: 04-29 23:40 阅读次数: 0

【邮箱发送】Could not authenticate

版权声明:咔咔 来自https://blog.csdn.net/fangkang7 https://blog.csdn.net/fangkang7/article/details/88685005 author:咔咔 wechat:fangakngfk 在发送邮箱时报出这个错 这个错的原因是因为代码里边的密码,不是你的账号密码,而是邮箱的授权码。 关于这个问题,网上介绍的有很多,下面我先说一下我的解决方法: 其实并不是代码问题,而是邮箱的设置问题,使用163邮箱SMTP服务器的特别注意以下我说
分类: 其他 发布时间: 04-29 23:39 阅读次数: 0

【JavaScript】获取表单的所有数据

版权声明:咔咔 来自https://blog.csdn.net/fangkang7 https://blog.csdn.net/fangkang7/article/details/88692484 author:咔咔 wechat:fangkangfk $("form").serialize()
分类: 其他 发布时间: 04-29 23:39 阅读次数: 0

【PHP】原生验证码

版权声明:咔咔 来自https://blog.csdn.net/fangkang7 https://blog.csdn.net/fangkang7/article/details/88692512 author:咔咔 wechat:fangkangfk、 /** * author:咔咔 * * 验证码 */ public function codeAction() { Header("Content-type: image/P
分类: 其他 发布时间: 04-29 23:39 阅读次数: 0

【正则】至少包括字母数字特殊字符中任意2种的正则表达式

版权声明:咔咔 来自https://blog.csdn.net/fangkang7 https://blog.csdn.net/fangkang7/article/details/88707970 author:咔咔 wechat:fangkangfk function checkEmail(email) { var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/; if(!re
分类: 其他 发布时间: 04-29 23:38 阅读次数: 0