自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (2)
  • 问答 (4)
  • 收藏
  • 关注

原创 正式和测试环境之间切换

工具类如下:package com.websocket.demo;import android.content.Context;import java.io.File;import java.io.IOException;import java.lang.ref.SoftReference;/** * Author:chenp * Time : 2018/10/16 * D...

2018-10-16 20:21:39 2412

原创 Rxjava分析

1111

2018-06-05 16:29:15 201

原创 Activity启动流程分析

1111

2018-06-05 16:28:41 225

原创 Activity、View和Window之间的关系

111

2018-06-05 16:27:42 257

原创 Android网络知识点总结

TCP协议中的三次握手和四次挥手(图解) http://blog.csdn.net/whuslei/article/details/6667471/数据加密算法详解 https://mp.weixin.qq.com/s/-Jb-_PpbEN5HYpueUqtxzA 对称加密方案学习 DES / 3DES / AES https://mp.weixin.qq.com/s/wmBqL2P...

2018-06-05 16:09:07 214

原创 Okhttp源码分析

一个简单的请求过程: OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(“https://www.baidu.com/“).build(); Response response = clie...

2018-06-05 16:07:26 140

原创 Android源码设计模式解析与实战

1.单一职责原则。 这个其实有很深的学问。什么样子的功能需要单独封装成一个类。 而且这个类还要适应拓展,拓展之后不至于太臃肿。 //这个就需要很大的技巧。 就比如说,最近开发的 一键回家、电子狗功能的疲劳提醒,都是封装到一个类里面,外面只需要调用一个方法 //但是自己的整体架构还不行。2.开闭原则—-对拓展开发,对修改关闭。...

2018-06-05 14:32:19 144

原创 LayoutInflater源码分析与应用

LayoutInflater源码分析与应用:http://www.jianshu.com/p/de7f651170be1.LayoutInflater.from(mContext).inflate(R.layout.recyler_view_item, parent, false) 这句话的意思是,指定一个parent,但是创建的布局,又不添加到parent中这样LayoutParams...

2018-06-05 14:31:20 176

原创 Service中startActivity分析

111

2018-06-05 14:26:18 379

原创 工作总结知识点

今天开发对讲功能,因为init调用了多次导致失败。但是对方一眼就看出是调用了多次init的原因。特此记录。adb shell dumpsys activity services grep -nir “ImService”查看,调用多次的日志为:C:\Users\Administrator>adb shell dumpsys activity services grep -nir "I...

2018-06-05 13:49:18 275

原创 文章索引以及链接

个人博客:网络优秀链接1.自动升级: http://blog.csdn.net/jj120522/article/details/7948554 主要是本地版本号和服务版本号对比,然后弹框确定之后,下载APP然后进行安装。2.每个Activity中加入引导界面 http://www.cnblogs.com/Amandaliu/archive/2012/12/03/279965...

2018-04-26 10:16:56 416 6

原创 腾讯云视频加密

采用腾讯云的视频加密服务,整个流程如下1、通过腾讯云后台进行视频的上传,然后自动转码、加密,APP后台就可以获取到单个视频的播放地址、fileid 2、APP获取到播放地址,里面包含filleid,然后再点击播放的时候,通过接口去获取token,然后和播放地址进行拼接,然后丢给播放器 3、播放器回去根据播放地址去下载m3u8文件,其中m3u8文件中的EXT-X-KEY标签有一个地址,通过这...

2018-03-20 16:55:26 3906 1

原创 Android软键盘弹出

一、先看在沉浸式模式中,什么都不处理的。只是添加2个EditText <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="300dp" android:hint="请

2017-05-08 10:10:25 334

原创 Android运行时权限

正确的书写方式,以拨打电话为例:首先在Manifest.xml中声明权限:<uses-permission android:name="android.permission.CALL_PHONE" />然后要在代码中判断有没有权限。 private void call() {//有权限,拨打电话 try { Intent callIntent = new

2017-05-08 00:52:04 304

原创 Volley学习

任何网络框架都是想通的,所以研究一个,其他的都类似。 请求网络有异常捕获以及超时处理。 本文主要是,Volley的超时设置以及异常回调流程。DefaultRetryPolicy类实现了RetryPolicy的接口,里面有2个变量。mCurrentTimeoutMs和mCurrentRetryCount,分别控制超时时间和异常之后重新retry的次数。一:超时时间Volley有2个类,一个是Http

2017-04-13 17:52:39 285

原创 APK反编译

一.反编译代码 1.解压dex2jar-0.0.9.15.zip文件,然后用cmd命令跳转到所在目录下面 2.通过压缩软件解压缩APK文件,把解压之后的classes.dex文件发到dex2jar的文件夹下面 3.通过cmd执行命令:dex2jar.bat classes.dex。 之后会生成一个classes_dex2jar.jar包(就是要这个包) 4.通过jd-gui打开刚刚生成的

2016-09-30 16:15:31 322

原创 android keystore

1.生成方式

2016-09-30 11:17:43 262

原创 butterknife绑定之后view依然为空

要进行项目的设置,如下面截图所示

2016-09-14 11:36:02 2437

原创 OkHttp3缓存没有生效

今天在调用OkHttp3的代码时候,发现缓存写入不进去。调用代码如下:public void getPostHttp() { try { File sdcache = getExternalCacheDir(); int cacheSize = 10 * 1024 * 1024;// 10M OkHttpClien

2016-09-12 18:09:35 4641 2

原创 android图片压缩

上传到服务器上的图片,要求不能太大,而且要相对清晰。采用策略:先图片尺寸压缩,宽满足小于 960 or 高小于1200再按照大小进行压缩,小于60KB具体代码:public static void scaleImageFile(String path) { File file = new File(path); File tmpFile = new File(p

2016-09-05 18:15:40 328

原创 android内存泄漏

内存问题内存泄漏的可能原因非静态内部类的静态实例(例如Handler)IO操作后,没有关闭文件导致的内存泄露自定义View中使用TypedArray后,没有recycle某些地方使用了四大组件的context,在离开这些组件后仍然持有其context导致的内存泄露注册某个广播等之后,没有进行反注册集合中的对象没有清理造成泄漏Bitmap没有及时回收Cursor、File等资源没有关闭

2016-09-05 00:50:17 295

原创 android View知识点总结

参考链接:教你步步为营掌握自定义View

2016-09-04 23:11:44 611

原创 android-不容易发现的内存泄漏

一、Handler引起的泄漏假如程序如下方式书写:Handler mHandler = new Handler() { @Override public void handleMessage(android.os.Message msg) { super.handleMessage(msg); }; };由于mHandle

2016-09-04 21:48:17 993

原创 设计模式总结·

工厂方法抽象工厂单例模式、建造者模式(Builder)原型模式适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式策略模式模板方法模式观察者模式迭代器模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式

2016-09-04 21:40:55 283

原创 Hander测试内存泄漏

public class CldMemoryOptiActivity extends Activity { private MyHandlder mMyHandler = new MyHandlder(); class MyHandlder extends Handler { @Override public void handleMessage(Mess

2016-09-04 17:02:18 332

原创 android基础知识点

什么是线程安全多线程访问同一个代码,不会产生不确定的结果。往往可以通过synchronized加锁保证线程安全。参考链接:java synchronized详解序列化有两种序列化的方式:Serializable和Parcelable(Android独有)。在内存的序列化上,建议使用Parcelable。但是在对象存储和网络传输的时候,建议使用Serializable。序列化是把对象转换为字节

2016-09-04 16:54:08 393

原创 微信不打包分享

以前微信测试分享都是要打包。现在支持不打包分享了。步骤:首先要在微信开发平台注册自己的账号—-RE:https://open.weixin.qq.com/创建一个应用,内容可以随便写,需要审核通过 RE:申请通过之后,我们在微信就有了一个账号加验证通过的APP。以后不管什么应用,都可以借助此来测试分享功能(可以跟申请时候的包名不一致)开发平台修改为要测试的包名开发平台下载签名工具,然后在装

2016-09-04 16:50:35 480

原创 android网络相关

TCP/IP三次握手客户端发送一个带SYN标志的TCP报文到服务器服务器回应一个带ACK标志和SYN标志的报文给客户端。表示对刚才SYN报文的回应。另外询问客户端,是否准备好进行数据通信。客户端再发送一个ACK报文。这个时候就可以进行数据通信了。假如是两次可能导致已过期的连接再次被连接到主机(先发一次没收到,再发一次。然后第一次发的延迟收到)可能导致死锁的发生。(A发送确认应答。B在没收

2016-09-04 01:57:23 208

原创 实践反馈-StrickMode

作用:主要检测UI线程中的本地存储以及网络请求的耗时操作。1.在自己的Application中要开启严格模式public class CldApplication extends Application { private static final boolean IS_DEBUG = true;// 测试版本 @Override public void onCreate

2016-09-03 23:29:46 1197 2

原创 Android性能优化总结

学了几年android之后,发现性能优化已经成为衡量一个APP质量的一个关键性的因素。随着移动互联网以及移动技术的发展。性能差的APP越来越不能达到用户的需求。所以在这里总结性能优化的知识点,以让自己有所总结。一.内存优化主要涉及内存泄漏二.四.工具的使用1.StrictMode严格模式主要作用:检测UI线程中的本地存储以及网络请求的耗时操作

2016-09-03 23:22:17 477

原创 android签名问题

1.添加系统权限,实现关机1.写一个简单地程序qianming。放在packages/apps下面,必须添加Android.mk才能编译。LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-un

2013-12-02 17:06:42 672 2

原创 设置中应用程序已用 可用空间的计算方法:

1.正在运行这个可以参考android设备的内存空间(RAM)总空间和可用空间大小的获取以及一些思考内存已用空间 = 前台进程内存空间 + 服务进程空间   可用内存空间 = meminfo中的MemFree + memInfo中的Cached + 后台和空进程的空间 - SECONDARY_SERVER_MEM(默认是16MB) long availMem = mMemI

2013-11-18 14:15:26 1626

原创 PackageManagerService(四):上层调用

1.PackageManagerService的产生在 frameworks\base\services\java\com\android\server/systemserver.java 中启动包管理服务。systemserver.java是在Zygote中进行启动的。即这个服务是在启动启动之后就始终运行的。[java] view plaincopy

2013-11-07 16:34:39 918

原创 Binder

1.大致了解Binder的调用过程:Android学习笔记--Binder如果一个服务需要通过binder机制对外提供跨进程的接口,需要做下面这些事情。     (1) 第一步,需要为这个接口定义一个继承自IInterface的接口类,假设叫做IMyService。     (2) 第二步,需要定义两个binder类,其中一个是代理类BpMyService,需继承自BpInterfac

2013-10-31 15:43:02 739

原创 JNI

1.介绍:Android JNI开发入门与提高2.

2013-10-30 09:50:36 622

原创 MediaRecorder

1.应用代码public class mediarecorder1 extends ListActivity{ private Button mAudioStartBtn; private Button mAudioStopBtn; private File mRecAudioFile; // 录制的音频文件 private File mRe

2013-10-25 15:41:12 877

原创 多媒体代码结构

1.data/data/com.android.providers.media/databases/数据库存放位置

2013-10-25 09:38:19 1167

原创 测试log分析方法

1.MonkeyTest.log目前所知的MonkeyTest测试主要有空指针和找不到资源类的问题。查找方法:搜索对应的包名,如:com.android.Contacts搜索联系人出现的问题。解决方法:一般情况下是在对应的地方捕获异常。android.content.res.Resources$NotFoundExceptiontry{}ca

2013-07-18 09:57:46 4068

原创 一些文章

1Android联系人模块学习总结

2013-07-12 15:35:54 639

原创 android 计时器 Timer

android基础知识01——TimerAndroid 计时器Timer用法主要是设置在多少时间之后开始执行一个任务。也可以在多少时间之后定时执行某个任务。

2013-05-22 17:22:26 753

虚拟机linux下配置android环境

介绍安装android环境的时候出现的一些问题,以及安装步骤。

2013-11-22

thinking.in.java第三版.第四版(中文版.习题答案)

thinking.in.java的答案,学习java的同学可以借此参考一下,仅为学习使用。。。

2012-01-14

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

TA关注的人

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