自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 全方位带你彻底搞懂Android内存泄露

1Java内存回收方式Java判断对象是否可以回收使用的而是可达性分析算法。在主流的商用程序语言中(Java和C#),都是使用可达性分析算法判断对象是否存活的。这个算法的基本思路就是通过一系列名为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用

2017-11-30 19:33:22 4916

原创 Android 图片缓存处理

异步下载 / 本地缓存异步下载大家都知道,在android应用中UI线程5秒没响应的话就会抛出无响应异常,对于远程获取大的资源来说,这种异常还是很容易就会抛出来的,那么怎么避免这种问题的产生。在android中提供两种方法来做这件事情:启动一个新的线程来获取资源,完成后通过Handler机制发送消息,并在UI线程中处理消息,从而达到在异步线程中获取图片,然后通过Hand

2017-11-30 16:06:30 158

原创 CardView是在安卓5.0提出的卡片式控件

compile 'com.android.support:cardview-v7:23.2.0'  Cardview继承自FrameLayout,所以子控件布局规则和FrameLayout的一样,这个FrameLayout特殊点就是有rounded corner(圆角)和shadow(阴影)CardView的常用属性属性作用card_view:cardEle

2017-11-30 15:54:22 307

转载 Android发展趋势分析

继手机、平板电脑后,汽车成Android下一重点开拓领域其实我们来回顾一下Android的发展趋势,它从一个智能手机的OS为基础,一边学习和借鉴Apple的产品,一边吸纳合作手机厂商的贡献,不断地增加了各种各样的功能,提升用户体验。实际上Android的发展跟移动互联网的发展基本上是同步的,其最大优势主要还是为消费电子产品提供了良好的交互体验、强大的连接能力,以及Java VM

2017-11-30 15:34:51 10849

原创 java顺时针、逆时针打印矩阵

public class SnakeMatrix { /** * 定义矩阵的阶数 */ private int n; //填充矩阵的值 private int k = 1; private int[][] data; /** * 定义矩阵移动的方向 */ public enum Direction

2017-11-30 14:29:24 536

原创 java基础--for循环实现五位数中的回文数

public class MainActivity extends AppCompatActivity { TextView text,ge; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

2017-11-30 14:08:19 1117

原创 有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

public class MainActivity extends AppCompatActivity { int i=0; //保存百位上的数 int j=0; //保存十位上的数 int k=0; //保存各位上的数 int t=0; //保存数字个数 TextView text,ge; @Override protected v

2017-11-30 13:40:26 4006

原创 遍历出一个文件夹下的所有文件,

import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.io.File;public class M

2017-11-30 09:53:23 1342

原创 java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

package excise;  /*输入一行字符,分别统计出其中英文字母   、空格、数字的个数*/  import  java.util.Scanner;  public class T007 {      public static   void main(String args[]){          int num=0,chartra=0,blak=0,other=0;        

2017-11-30 09:42:30 46041 4

原创 50000的阶乘

50000的阶乘,最开始我是用递归实现的,代码如下:/*** 递归实现求阶乘* @param n* @return*/public static BigInteger getResult(long n) {if (n==1) {return BigInteger.valueOf(1);}else {return

2017-11-29 15:12:22 865

原创 Git 常用命令大全

一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow

2017-11-29 08:58:05 710090 44

原创 Gradle 与 Android的相互依赖

Android应用的构建过程是一个复杂的过程,涉及到很多工具。首先所有的资源文件都会被编译,并且在一个R文件中引用,然后Java代码被编译,通过dex工具转换成dalvik字节码。最后这些文件都会被打包成一个APK文件,此应用被最终安装到设备之前,APK会被一个debug或者release的key文件签名。以上步骤人工操作着实繁琐,2013推出了Gradle,作为Android首选的构建系统,

2017-11-24 11:02:26 2394

原创 Android视频录制--屏幕录制

但其实只用MediaProjection,并无法生成一个视频,因为我们得到的只是流,还需要把流编码成视频格式。MediaProjection官方的demo里,也仅仅是把输出内容放到了surfaceview里面,在app内部展示。这次我们就讲一下,如何把MediaProjection输出的流转化成为视频。 简单说一下,一个视频的生成,最少要有以下两步: 1. 视频的采集,比如摄像头,

2017-11-24 10:34:19 767

原创 Android Fragment 你应该知道的一切

1、概述首先我们简单回顾一下,相信大家对Fragment的都不陌生,对于Fragment的使用,一方面Activity需要在布局中为Fragment安排位置,另一方面需要管理好Fragment的生命周期。Activity中有个FragmentManager,其内部维护fragment队列,以及fragment事务的回退栈。一般情况下,我们在Activity里面会这么添加Fragment:

2017-11-24 10:30:09 166

转载 Androi沉浸式模式

其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的。因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚沉浸模式到底是什么东西的情况下,就张冠李戴地认为一些系统提供的状态栏操作就是沉浸式的,并且还起了一个沉浸式状态栏的名字。比如之前就有一个QQ群友问过我,像饿了么这样的沉浸式状态栏

2017-11-23 18:51:58 308

转载 APK瘦身全面总结——如何从32.6M到13.6M

之前我简单介绍了关于svg图片瘦身的问题,在公司,瘦身这个问题是我提出来的,所以这锅我背了。公司项目是32.6M,我给自己的要求就是低于20M。上周花了一个星期瘦身,至于为什么花了一周,主要是svg适配问题我被搞蒙蔽了。然后发现还要改大量代码,想想也就算了,又换了另一种瘦身方法。很多人是因为这标题而来的,怎么可能,32.6M的居然可以变成13.6M。下面容我慢慢道来。APK结构介绍

2017-11-23 11:20:15 297

原创 LruCache源码解析

今天我们来聊聊缓存策略相关的内容,LruCache应该说是三级缓存策略会使用到的内存缓存策略。今天我们就来扒一扒这里面的原理,同时也温故温故我们的数据结构方面的知识。目标我们今天讲的这个缓存策略,主要有几个目的:1.了解缓存的策略;2.巩固数据结构相关的知识;3.自己能实现一个缓存策略。源码解析1.缓存策略要来分析源码,我们首先要先明白有哪几种缓存淘汰算法,

2017-11-23 11:10:34 262

原创 如何正确地写出单例模式

单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。懒汉式,线程不安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。

2017-11-23 11:04:39 176

原创 Ijkplayer最简单的简单使用

首先导入依赖包:compile 'com.dou361.ijkplayer:jjdxm-ijkplayer:1.0.5'如果全屏播放就不用粘贴布局了;如果是屏幕中一小块的话就粘贴这个布局: include layout="@layout/simple_player_view_player" android:layout_width="matc

2017-11-23 10:59:52 1213

原创 android开发之微信支付功能的实现

移动开发中,支付类的App越来越多,对于开发者来说也是不可少的,不可不会的:下面就来说一说支付开发的流程1.申请你的AppID请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。2.下载SDK及API文档Android Studio环境下:在build.gradle文件中,添加如下依赖即可:depend

2017-11-23 10:21:52 1982 2

转载 android 多线程断点续传下载

今天跟大家一起分享下android开发中比较难的一个环节,可能很多人看到这个标题就会感觉头很大,的确如果没有良好的编码能力和逻辑思维,这块是很难搞明白的,前面2次总结中已经为大家分享过有关技术的一些基本要领,我们先一起简单回顾下它的基本原理。http://blog.csdn.net/shimiso/article/details/6763664  android 多线程断点续传下载 一

2017-11-22 19:49:52 212

原创 GreenDao3.0简单使用

GreenDao3.0简单使用greenDAO 优势1、一个精简的库2、性能最大化3、内存开销最小化4、易于使用的 APIs5、对 Android 进行高度优化配置app中导依赖apply plugin: 'org.greenrobot.greendao'compile 'org.greenrobot:greendao:3.2.0'app Android

2017-11-22 19:36:51 168

转载 Greendao+多线程断点续传

1、在app的Gradle中配置:apply plugin: 'org.greenrobot.greendao'dependencies {        compile 'org.greenrobot:greendao:3.2.0'}2、在project的Gradle中配置:dependencies {         classpath 'org.green

2017-11-22 15:21:26 220

原创 断点续传下载功能

首先呢我们需要创建一个包DownlaodSqlToolimport android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList;import java.util.List

2017-11-22 14:08:36 329

原创 购物车自定义view 加减号

----------------------------------------values下建立一个attrs----------------------declare-styleable name="AmountView"> attr name="btnWidth" format="dimension" /> attr name="tvWidth

2017-11-22 08:45:08 272

原创 RxJava操作符学习笔记

操作符操作符是为了解决对Observable对象的变换的问题,操作符用于在Observable和最终的Subscriber之间修改Observable发出的事件。RxJava提供了很多很有用的操作符。Subscribers更应该做的事情是“响应”,响应Observable发出的事件,而不是去修改。创建操作以下操作符用于创建Observable。create:

2017-11-20 20:27:30 186

原创 Android ijkplayer的使用解析

ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放。支持Android&iOS。导包ijkplayer导包源码下载https://github.com/lmx-fashion/IjikPlayer我们需要的只有widget.media的类。 然后进行配置就好了修改APP下的build.

2017-11-16 19:11:03 679

转载 GreenDao概要

一、关于GreenDaogreenDao应该算是当前最火的数据库开源框架了,它是一个将对象映射到SQLite数据库中的轻量且快速的ORM(object / relational mapping)解决方案。 关于greenDAO的其他相关信息可以看官网greenDAO二、GreenDao理解DAO的core library中有以下几个核心类,也是后面常用到的,先来大概了解

2017-11-15 17:16:40 254

转载 GreenDao的使用

1、在app的Gradle中配置:apply plugin: 'org.greenrobot.greendao'dependencies {        compile 'org.greenrobot:greendao:3.2.0'}2、在project的Gradle中配置:dependencies {         classpath 'org.green

2017-11-15 17:13:57 276

原创 SharedPrefence的一个简单工具类

import android.content.Context;import android.content.SharedPreferences;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Map;/** * Created by

2017-11-11 15:48:51 1272 1

转载 fresco使用集锦

环境搭建compile 'com.facebook.fresco:fresco:1.3.0'// 支持webpcompile 'com.facebook.fresco:webpsupport:1.3.0'// gif加载使用compile 'com.facebook.fresco:animated-gif:1.3.0'// WebP(静态图+动图)加载使用compile 'com.

2017-11-11 10:53:06 1307

转载 OkHttp实现断点续传

1.导入依赖包//retrofit, 基于Okhttp,考虑到项目中经常会用到retrofit,就导入这个了。compile 'com.squareup.retrofit2:retrofit:2.1.0'//ButterKnifecompile 'com.jakewharton:butterknife:7.0.1'//rxjava 本例中线程切换要用到,代替handlercomp

2017-11-10 19:28:17 2206

转载 Android 网络工具类NetworkUtils使用

NetworkUtils工具类里封装了以下方法:[html] view plain copyopenWirelessSettings   : 打开网络设置界面  isConnected            : 判断网络是否连接  isAvailableByPing      : 判断网络是否可用  getDataEnabled 

2017-11-08 20:43:53 2151

原创 android studio 读取assets文件夹下的文件

首先,和eclipse不同的是assets文件夹的位置,在eclipse中,assets文件夹是在res文件夹下Paste_Image.png在android studio中有所不同Paste_Image.pngPaste_Image.png如果也和eclipse一样放在res文件夹下读取会报异常。读取: InputStream inp

2017-11-07 20:02:22 15407 5

原创 EventBus的一些使用,,

前言EventBus是一款针对Android优化的发布/订阅事件总线。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅,以及将发送者和接收者解耦。如果Activity和Activity进行交互还好说,如果Fragment和Fragment进行交互着实令人头疼,我们会使用广播来处理,但是使用广播稍显麻烦并且效率也不高,如果传递的数据是实体类需要序列化,那么很显然成本

2017-11-07 14:06:12 340

原创 MVP+Fresco+Retrofit实现的一个简单的适配器类

初始化一个接口public class Api { public static final String BASE_PATH = "https://api.tianapi.com";}初始化Fresco的public class MyApp extends Application{ public static Context contex

2017-11-04 17:21:16 204

原创 简单的一个利用MVP做的登录

首先是实体类public class Lobean { String code; public Lobean(String code) { this.code = code; } public String getCode() { return code; } public void setCode(S

2017-11-04 17:06:24 213

转载 开发者最讨厌的编程语言:Perl 名列第一,PHP、Objective-C 和 Ruby 都在其中

说好的 PHP 是世界上最好的语言的呢?了解当下最流行的编程语言,那你知晓开发者中最不受欢迎的编程语言吗?是因为与时俱进的淘汰,还是“人红是非多”的不喜欢?近日,全球著名的 IT 网站 Stack Overflow 根据数百万开发者项目标签的使用频率,发布了一份编程语言的调查报告,试图找出最不受欢迎的编程语言。没想到开发者最想规避的编程语言中,PHP、Objective-C 和

2017-11-03 12:20:05 302

转载 深度学习中的注意力机制

最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。本文以机器翻译为例,深入浅出地介绍了深度学习中注意力机制的原理及关键计算机制,同时也抽象出其本质思想,并介绍了注意力模型在图像及语音等领域的典型应用场景。注意力模型最近几年在深度学习各个领域被广泛使用,无论是图

2017-11-02 22:26:39 658

转载 安卓单元测试全攻略,让代码测试一劳永逸

前言                安卓单元测试,只看这一篇就足够啦。真正的完全解析,真正的从0到1,Junit结合Mockito与Robolectric实现从M到V再到P,Jacoco扫描函数、逻辑、代码行数单元测试覆盖率100%的全面测试。你是否还在为了验证联网与未联网状态而频繁的开关WiFi开关?或者你是否还在为一个switch判断而频繁的使用debug断点setValue来观测代码

2017-11-02 22:24:03 656

RN WebView端获取图片相册

简单好用,粘贴即可,但是要注意的是有可能存在冲突,,如果有冲突的话,删掉冲突部分即可

2018-11-28

Git菜单栏功能

Checkout:切换分支 Add:将开发项目或指定文件添加到git仓库管理。 是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步。 Branches:点击切换开发分支 Tag:为项目打tag(标签) 可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了 Annotate:查看文件修改记录 Pull:更新gitlab上的代码 从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地 Push:提交代码到本地git仓库或者到远程git仓库 Rebase:还原一个版本的修改. Show Current Revision :显示当前项目文件修改前的版本 stash:将当前未提交的工作存入Git工作栈中

2017-09-27

空空如也

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

TA关注的人

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