- 博客(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
Git菜单栏功能
2017-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人