自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

翻译 monkey实战--测试步骤、常用参数、常规monkey命令

 简要步骤:adb devices---了解包名--adb shell monkey -p 包名 -v 运行次数(多个参数的组合形成不同的用例以求最大的覆盖)--当崩溃或无响应时分析monkey日志常规monkey命令(可直接在项目里使用):adb shell monkey -p com.jiochat.jiochatapp --throttle 100 --ignore-crash...

2018-12-17 21:32:58 848

原创 python

python特点:简单易学,面向对象(具有封装继承多态的特点),解释性(在开发阶段不需要编译),编译性,跨平台(linux,mac,windows),高级编程语言,免费开源,易维护,互动的,挣钱的,比较火的,很多人学不会的。path配置:我的电脑-属性-高级系统配置-环境变量-path,添加python的安装路径’\xd6\xd0\xce\xc4′中文乱码问题:(1)右下角 utf-8(2)set...

2018-04-26 22:32:27 304

原创 Android Studio快捷键

shift+f6:重命名 press enter结束ctrl+o或ctrl+i:重写父类的方法ctrl+shift+空格:代码提示alt+insert:封装属性ctrl+alt+t:surround withctrl+alt+b:查找方法,导航ctrl+w:ctrl+alt+v:变成常量ctrl+斜杠:单行注释ctrl+shift+斜杠:块注释ctrl+d:复制选中的代码ctrl+空格:代码补全C...

2018-04-26 22:29:51 302

原创 android控件自动化埋点统计

android控件自动化埋点统计想到应用统计,平时我们使用的一般都是第三方的,比如百度统计,友盟统计,这几天公司要做自己的统计,于是乎也找了一些自动化埋点的博文学习使用。最后会给出参考链接,非常感谢。现有的几种埋点技术的实现原理和优劣分析 1.代码埋点:将收集数据的代码直接写在需要的地方,当用户点击某个控件或者打开某个页面时调用到该部分代码完成数据的收集。  优势:准确性高,收

2018-02-07 09:54:27 4181

原创 Android百分比布局:PercentLayout

Android百分比布局:PercentLayout1.百分比布局是什么简单来说就是按照父布局的宽高进行百分比分隔,以此来确定视图的大小。听起来好像牛逼闪闪的样子,让我们用一种图来认识下:上图的根布局使用百分比相对布局,子View就可以使用百分比确定自己的宽高,还是挺简单的。 2.百分比布局和可以使用百分比的属性 - PercentRel

2018-01-26 19:28:26 2281

原创 简单粗暴系列之HTTPS原理

简单粗暴系列之HTTPS原理一、开篇  简单粗暴,本文来聊聊HTTPS。  啥是HTTPS? 说白了就是HTTP Over SSL。HTTP呢,就是我们平时上网时,浏览器和服务器之间传输数据的一项协议。普通情况下,浏览器发送的请求会经过若干个网络中间节点,最后到达服务器;然后服务器又将请求的数据经过若干个网络中间节点发送回给浏览器,这时候浏览器就能够显示我们想要看到的页面。  

2018-01-09 20:46:22 544

原创 Handler内存泄露原理及解决方法

Handler内存泄露原理及解决方法前言因为Android采取了单线程UI模型,开发者无法在子线程中更新UI,为此Android为我们提供了Handler这个工具,可以开发者切换到主线程更新UI。示例首先看一段示例代码public class LeakCanaryActivity extends AppCompatActivity private Handler mHa

2018-01-09 20:44:13 312

原创 一份完整App运营推广计划方案

一份完整App运营推广计划方案一、App运营推广概念引用百度百科的概念:对运营过程的计划、组织、实施和控制,是与产品生产和服务创造密切相关的各项管理工作的总称。从另一个角度来讲,运营管理也可以指为对生产和提供公司主要的产品和服务的系统进行设计、运行、评价和改进的管理工作。细细思考下,其实,APP运营推广无非是产品想盈利模式,而运营去实践盈利模式。任何运营都围绕“用户”展开,包括“吸

2018-01-09 09:26:06 20471 1

原创 GC

一、为什么需要GC应用程序对资源操作,通常简单分为以下几个步骤:1、为对应的资源分配内存2、初始化内存3、使用资源4、清理资源5、释放内存应用程序对资源(内存使用)管理的方式,常见的一般有如下几种:1、手动管理:C,C++2、计数管理:COM3、自动管理:.NET,Java,PHP,GO…但是,手动管理和计数管理的复杂性很容易产生以下典型问题:1

2018-01-08 21:03:46 246

原创 git命令

git命令一、新建代码库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。# 显示当

2018-01-08 20:36:15 146

原创 HashMap原理详解

HashMap原理详解1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特

2017-12-29 11:02:24 401

原创 HashMap,LinkedMap,TreeMap的区别

HashMap,LinkedMap,TreeMap的区别HashMap,LinkedHashMap,TreeMap都属于MapMap 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。  HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一

2017-12-29 10:59:02 792

原创 java面试题

1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么?(1)boolean   boolean数据类型非true即false。这个数据类型表示1 bit的信息,但是它的大小并没有精确定义。   《Java虚拟机规范》中如是说:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,J

2017-12-29 09:43:03 430 1

原创 Java三大特性

java的三大特性Java语言的三大特性即是:封装、继承、多态封装(1)封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。继承(1)继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。(2)

2017-12-29 09:33:16 438

原创 进程和线程关系及区别

进程和线程关系及区别1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

2017-12-29 09:28:56 254

原创 Android 冷启动 热启动 测试

Android 冷启动 热启动 测试热启动呢:就是你已经打开过APP但是实际上面你使用home键等。就是还存在后台的应用。再次打开的时候算是属于热启动了。冷启动呢:属于你第一次打开APP,系统在给你开一个进程。      这个时候我在说明一下热启动的作用。我这边公司想知道他APP开了几次。而且需要准确的数据。这个时候,使用热启动。其实热启动很多地方都可以使用到。一、应用的启动

2017-12-29 09:04:11 3851

原创 Android集成微信支付功能

Android集成微信支付功能一、开发准备 1. 微信支付-官方文档 2. 微信支付-官方Demo&SDK 3. 本教程对应的源代码 二、微信接入 想要接入微信移动支付功能,需要在微信开放平台及微信商户平台注册帐号,并且申请应用,应用申请结束之后需要申请微信支付接口,这个可以在对应平台中查看操作流程,

2017-12-28 21:25:36 383

原创 Android集成支付宝支付功能

Android集成支付宝支付功能一、开发准备1. 支付宝官方文档-移动支付2. 移动支付的SDK&DEMO下载3. 移动支付-接入指南 - 此文档非常重要,后面详细说明。4. 本教程对应的源代码二、支付宝接入想要接入支付宝移动支付功能,必须在支付宝商家服务平台进行申请与审核。移动支付功能需要企业或者个体工商户进行申请,审核通过之后方可使用。如何与支付宝签约并审核请参考官方文档

2017-12-28 21:15:57 540

原创 Android-线程通讯设计模式-Handler消息模型

Android-线程通讯设计模式-Handler消息模型问题思考:1) Android中的工作线程获取数据以后如何传递给主线程? 例如: 例如工作线程通过网络下载一张图片,通过主线程将图片更新到页面上。 所有的耗时操作在工作线程,工作线程不能操作UI 2) Android 中主线程的数据如何传递给工作线程? 例如: 主线程将要下载的文件的名字传递给工作线程。 

2017-12-27 16:35:08 515

原创 Android WebView 详解

Android WebView 详解1.   相关API    1.1. 相关类介绍       1.2. WebView        1.3. WebSettings    1.4. WebViewClient           1.5. WebChromeClient    2.  回调顺序    3.  视口(viewport)    4.管理

2017-12-27 16:00:21 429

原创 开发移动应用程序的三种选择:原生、HTML5或混合

开发移动应用程序的三种选择:原生、HTML5或混合•原生应用程序:原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)。原生应用程序看起来(外观)和运行起来(性能)是最佳的。•HTML5应用程序:HTML5应用程序使用标准的Web技术,通常是HTML5、J

2017-12-27 15:47:04 16623

原创 自定义弹出Dialog框

自定义弹出Dialog框效果图:main.xml文件:Button android:id="@+id/btn_4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="自定义dialog" />自定义dialog.

2017-12-26 21:12:31 475

原创 Android APK反编译 详解

Android APK反编译就这么简单 详解在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。测试环境:        win 7 使用工具: 

2017-12-23 11:46:01 202

原创 Android异步和同步的区别

Android异步和同步的区别答案一:1、同步执行的话,就是程序会呆板地从头执行到尾,耗时间的东西不执行完,程序不会继续往下走,等待时间长的话,有时候就会造成失去响应了。2、异步的好处,就是把一些东西,特别是耗时间的东西扔到后台去运行了(doInBackground),程序可以继续做自己的事情,防止程序卡在那里失去响应。答案二:1、同步是指两个线程的运行是相关的,其中一个线

2017-12-23 11:40:39 657

原创 Android多线程的四种方式

Android多线程的四种方式当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread。通常一个应用的所有组件都运行在这一个Process中,当然,你可以通过修改四大组件在Manifest.xml中的代码块()中的android:process属性指定其运行在不同的process

2017-12-23 10:52:08 803

原创 Heap和Stack的区别

Heap和Stack的区别1 内存分配策略按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构 (比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准

2017-12-22 14:30:47 5321

原创 abstract class和interface的区别

abstract class和interface的区别在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class

2017-12-22 14:13:49 201

原创 Activity的四种启动模式

Activity的四种启动模式Activity启动方式有四种,分别是:standard     singleTop    singleTask     singleInstance  activity android:name=".MainActivity" android:launchMode="standard" />1.standard默认模式,可以不用写配置。在

2017-12-22 14:03:07 159

原创 一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现

一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现斐波纳契数列(Fibonacci Sequence),又称黄金分割数列。在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有

2017-12-22 13:59:34 1516

原创 RecyclerView多布局的简单实现

RecyclerView多布局的简单实现1.添加依赖:compile 'com.android.support:recyclerview-v7:24.2.1'2、在mainactivity的xml布局里直接写上recyclerviewLinearLayoutxmlns:android="http://schemas.android.com/apk/res/

2017-12-21 15:42:07 263

原创 GreenDao3.0简单使用

GreenDao3.0简单使用关于GreenDao greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。关于greenDAO的概念可以看官网greenDAO greenDAO 优势 1、一个精简的库2、性能最大化3、内存开销最小化4、易于使用的 APIs5、对 Android进行高度优化

2017-12-20 19:55:23 308

原创 Android 自定义textview实现跑马灯效果

Android 自定义textview实现跑马灯效果直接上代码:public class CustomTextView extends View { /** * 界面刷新时间(ms) */ public static final int INVALIDATE_TIME = 15; /** * 每次移动的像素点(px) *

2017-12-19 20:26:16 1633

原创 Android——自定义View实现9宫格解锁

Android——自定义View实现9宫格解锁自定义View1.实现一个子类继承View2.覆盖onDrow()函数,渲染图像3.覆盖onTouchEvent()函数4.监听按下、移动,松开手指的动作5.重新在onDrow()中渲染对应的的图像这是一个仿京东金融的一个九宫格解锁,最上面的日期显示使用的Time()获取到当前的时间,我们得到日期对其赋值就好了。

2017-12-19 16:52:25 766 1

原创 Android实现RecyclerView自定义列表、点击事件以及下拉刷新

Android实现RecyclerView自定义列表、点击事件以及下拉刷新1. 什么是RecyclerViewRecyclerView 是 Android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活。简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于

2017-12-19 11:10:47 370

原创 Android button设置背景色与边框颜色

Android button设置背景色与边框颜色1.在drawable文件夹下面创建setbar_bg.xmlxml version="1.0" encoding="utf-8"?>shape xmlns:android="http://schemas.android.com/apk/res/android" > solid android:color=

2017-12-14 15:01:11 27818 2

原创 Android TabLayout下方下划线的宽度

Android  TabLayout下方下划线的宽度      今天做项目遇到了这样一个问题,tablayout需要设置下划线的宽度,在网上找了半天也没找到,后来了解在源码中对tabLayout的下划线进行了设置.并没有方法可以直接设置下面我们看一下代码: public void setIndicator(TabLayout tabs, int leftDip, int right

2017-12-14 11:10:07 1567

原创 android studio点击运行按钮出现:Unable to locate adb 错误

android studio点击运行按钮出现:Unable to locate adb 错误问题:android studio点击运行按钮出现:Unable to locate adb分析:sdk Manager下不存在platform-tools,在SDK安装目录的\platform-tools下放入adb.exe解决:点击“sdk mamager”,在“sdk tool

2017-12-13 16:53:17 8068

原创 okhttp post请求

1.简介OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势,其核心主要有路由、连接协议、拦截器、代理、安全性认证、连接池以及网络适配,拦截器主要是++指添加,移除或者转换请求或者回应头部信息++这个库也是square开源的一个网络请求库(okhttp内部依赖okio)。现在已被Google

2017-12-11 16:14:20 16417

原创 贝塞尔曲线

贝塞尔曲线什么是贝塞尔曲线贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。主要结构:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。

2017-12-09 09:44:01 4244

原创 android studio 的Debug调试

android studio 的Debug调试1. 什么是bug?    程序错误或漏洞2. 什么是debug?    指程序员对编好的程序进行漏洞的排查,尽量消除错误或漏洞, 一般都是用专业的工具进行   作用:1. 找出程序运行出的异常2. 找出程序运行结果不正确的原因3. 理清一个复杂的程序流程,帮助阅读代码 断点:1. 断点需打在可能有问

2017-12-08 13:42:29 699

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除