自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weifeng的博客

终身学习者

  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java内部类

注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外部类的相同。1.成员内部类成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有

2017-04-30 22:20:31 361

原创 即拿即用-仿IOS风格的弹出框和对话框

github地址:https://github.com/mocn26169/NiceLookingDialogMainActivity:package com.bourne.nicelookingdialog;import android.app.Activity;import android.os.Bundle;import android.view.View;impor

2017-04-29 20:08:23 2797

原创 即拿即用-选择头像,可以选择相册,拍照,查看大图,保存到本地

如图所示:显示图片用的是Glide选择图片用的是GalleryFinal查看大图用的是PhotView圆形图片用的是SelectableRoundedImageViewGitHub地址:https://github.com/mocn26169/Avatar 核心代码:点击选择图片 @Override public void onClick(View v) { sw

2017-04-28 23:20:09 2694 2

原创 LoaderManager加载器初识

LoaderManager可以做什么LoaderManager,相当于一个监听器(观察者),它会实时监听底层数据的变化,一旦数据发生变化,就会通知loader,然后就可以做相应的处理。它的特点是嵌入在每一个Activity或者Fragment中的,且只有一个,我们可以不必关心它何时开启或者关闭,只要对数据进行相应的处理就好了,十分地方便。它在一个单独线程载入数据,监测底层数据源,当探测到有改变时就更

2017-04-27 22:09:59 402

原创 Android内存优化方案和内存泄露检测分析方法

常见内存泄露及优化方案1、单例错误写法:public class AppSettings { private static AppSettings sInstance; private Context mContext; private AppSettings(Context context) { this.mContext = context; }

2017-04-26 20:54:42 2296 1

原创 Service之扩展知识(2)android:process

今天将会明白几个知识点:使用多进程有什么好处和坏处将Activity放到另外一个进程可以不占用系统分配的堆如何解决Application会被执行两次的坑两个程序如何共享一个进程的数据Service多进程时的使用注意情况包名相同,不同签名时,是不能同时安装的android:process 属性  设置 android:process,使不同应用的组件在相同的进程中运行,但前提是这些应用共

2017-04-24 22:04:26 5870

原创 Service之扩展知识(1)

开发者文档API文档-中文:https://developer.android.google.cn/guide/components/services.htmlAPI文档-英文:https://developer.android.com/reference/android/app/Service.html什么是服务service可以说是一个在后台运行的Activity,它不是一个单独的进程,它只需要

2017-04-23 22:08:29 974

原创 Service之简单使用

生命周期context.startService() ->onCreate()- >onStartCommand()->Service running--调用context.stopService() ->onDestroy() context.bindService()->onCreate()->onBind()->Service running--调用>onUnbind() -> onDestr

2017-04-22 23:32:43 584

原创 即拿即用-Android多线程断点下载

线程下载只需要确定好下载一个文件需要多少个线程,一般来说最好为3条线程,因为线程过多会占用系统资源,而且线程间的相互竞争也会导致下载变慢。其次下载的时候将文件分割为三份(假设用3条线程下载)下载,在java中就要用到上次提到的RandomAccessFile这个API,它的开始结束为止用以下代码确定:conn.setRequestProperty(“Range”, “bytes=” + start

2017-04-21 21:57:05 835

原创 断点下载神器-RandomAccessFile

回顾在《即拿即用-Android单线程断点下载》下载的过程:点击开始 开启一个网络连接获取文件长度 获取上一次下载进度 开启一个下载任务 ,起点是上一次的下载进度 每500毫秒发送一个广播通知界面更新进度 点击暂停的时候保存下载进度在下载的时候,我们发现用RandomAccessFile替代了OutputStream,下面对比一下两者的使用区别:在普通的下载中使用的是OutputStr

2017-04-20 21:38:13 2072

原创 Android开发必备资源-长期更新

常用网站http://gufenso.huizhanzhang.com/ 谷歌搜 http://dir.scmor.com/google/ 谷歌镜像 https://github.com/HostsTools/Windows HostsTools https://developer.android.google.cn/guide/index.html API中文文档 https://dev

2017-04-19 17:51:06 1157

原创 即拿即用-Android单线程断点下载

之前有看过一个著名的断点下载的框架MultiThreadDownload,用的是线程池开启下载任务,点击暂停的时候将断点的信息保存在数据库里面,下次拿出来继续下载,本文的思路也和这个差不多。    这篇文章的代码将会在上次写的《即拿即用-HttpURLConnection分别实现图片,文本,文件的请求》的GitHub项目里面继续更新。完整下载地址在文章最后 该例子在下载中多次点击开始和暂停对进度

2017-04-18 23:47:14 1504

原创 Activity之API指南

语法<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFro

2017-04-17 22:59:15 2017

原创 Activity之taskAffinity属性、allowTaskReparenting属性和Android退出整个应用解决方案

singleInstance: 当ActivityX使用了singleInstance之后: 会重建一个单独的Task栈用来放置ActivityX。 该Task栈只能放置ActivityX,即使其他的Activity使用了和ActivityX同样的taskAffinity也不行。 和singleTask一样,ActivityX不会重复创建taskAffinity: ActivityY使用了taskA

2017-04-16 23:47:59 14275 2

原创 Activity之四大启动模式

介绍  启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;  启动模式有4种,分别为standard、singleTop、singleTask、singleInstance;讲解启动模式之前,有必要先讲解一下“任务栈”的概念;任务栈  每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调

2017-04-15 23:58:53 414

原创 Activity之使用技巧

一个activity是一个单例,用户能够在上面处理一些事情。几乎所有的activites都与用户进行互动,因此Activity类使用方法setContentView(int)放置UI组件到创建的窗口上。与此同时,activies通常以全屏的形式展现在windows上,也可以使用其他的方法,例如漂浮在window上(通过theme使用andorid.R.attr#windowIsFloating 设置

2017-04-14 19:59:47 712

原创 即拿即用-HttpURLConnection分别实现图片,文本,文件的请求

本文使用了HttpURLConnection分别实现图片,文本,文件的网络请求效果图: 代码:SimpleHttpActivitypackage com.bourne.httprequest;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Handler;import

2017-04-14 00:22:20 1915

原创 神兵利器之Android Studio常用技巧和常见问题

工欲善其事,必先利其器常用快捷键Ctrl +alt+t 常用结构Ctrl +alt+u 大小写Ctrl +alt+m 抽出方法Ctrl+alt+F 局部变量抽成为全局变量双击shift 全局搜索Ctrl+N搜索类Ctrl+F文件中搜索Ctrl+shift+N搜索文件Ctrl+shift+F全局查找Ctrl+F12 大纲任何可以判断的语句后面加上.if

2017-04-12 22:41:32 1605

原创 Android线程池(十)SynchronousQueue

xecutors给我们提供有这么一个预设线程池 :newCachedThreadPoolpublic static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,newSynchronousQueue()); }其中

2017-04-12 15:04:44 2136

原创 即拿即用-一个快速上手的网络请求框架(Retrofit+okHttp3)

很多时候,我们要测试某个网络请求,这时候就得有一个快速上手的网络请求框架方便使用。GitHub链接:https://github.com/mocn26169/QuickHttpRequest使用步骤下面是一个Retrofit+okHttp3的网络请求的例子,使用步骤如下:请求链接:http://blog.csdn.net/iromkoear?viewmode=contents使用方式:1、在Main

2017-04-10 22:04:36 700

原创 Android线程池(九) Runnable、Callable、Executor、Future、FutureTask关系解读

在JAVA中停止线程的方法有多种,有一种是结合ExecutorService和Future的使用,停止在线程池中超时的任务。 这种情况下处理的都是比较耗时的操作,比如请求资源,数据库查询等,当超过一定时间没有返回结果,就结束线程,提高响应速度。execute和submit方法开启一个线程任务的方式可以如下 public static ThreadPoolExecutor exe

2017-04-09 18:53:25 1159

原创 Android线程池(八)shutdown、awaitTermination、shutdownNow

shutdown、awaitTermination、shutdownNow的关系1、shutdown方法:这个方法会平滑地关闭ExecutorService,当我们调用这个方法时,ExecutorService停止接受任何新的任务且等待已经提交的任务执行完成(已经提交的任务会分两类:一类是已经在执行的,另一类是还没有开始执行的),当所有已经提交的任务执行完毕后将会关闭ExecutorService。

2017-04-08 19:42:01 2464

原创 线程知识点总结

知识是什么,知识就是看完了书把书扔掉之后脑中那些清晰、准确、必要的概念。 之前也写了挺多关于线程的博客,但是由于自己基础不扎实,大多数都是摘录别人的东西。所以这篇文章就是对一些重要的概念进行总结,把知识归纳整理,这篇博客会长期更新,只要遇到了一些自己不懂而且重要的理论就会添加上去。进程优先级的5种类型:前台进程、可见进程、服务进程、后台进程、空进程1、前台进程 (Foreground p

2017-04-07 22:58:46 1093

原创 Android线程的正确使用姿势

进程优先级(Process Priority)进程的优先级从高到低依次分为五类,越往下,在内存紧张的时候越有可能被系统杀掉。简而言之,越是容易被用户感知到的进程,其优先级必定更高。进程的五个常用等级:一.前台进程(Foreground process)   前台进程是用户当前做的事所必须的进程,如果满足下面各种情况中的一种,一个进程被认为是在前台:进程持有一个正在与用户交互的Activity。进

2017-04-06 21:53:26 4689 1

原创 Android代码规范

Resources directory structure 资源文件夹结构resanimdrawable (xml or selector)mipmap (pixel image)layoutvaluesResources directory structure 资源文件夹结构1、General 通用package name : com.companyname.[project

2017-04-05 22:46:11 652

原创 Android界面生成流程:View的绘制(Draw)

回顾在《 Android界面生成流程:View的布局(Layout)》中说到View的布局流程,之前通过测量得到一个View的矩阵图,那么布局是根据父容器s属性和子view的属性以及宽高进行计算,从而得到4个顶点的坐标:首先获取父容器的padding值,然后遍历每一个子view,子view根据自己的Gravity值,测量宽高,父容器的padding值,来确定子view的的布局参数,然后调用child

2017-04-04 11:27:15 2451

原创 Android界面生成流程:View的布局(Layout)

回顾在《 Android界面生成流程:View的测量(Measure)》说到View的测量流程,每个ViewGroup遍历所有的子View,View自己去测量自己的实际大小,然后View自己保存自己的大小信息,当然在View测量之前ViewGroup会传递一些信息给它们:父布局的尺寸父布局对子View的限制类型:UNSPECIFIED:不限定,想要多大就多大 EXACTLY:精确的,就用我给的

2017-04-03 23:56:51 2535

原创 Android界面生成流程:View的测量(Measure)

回顾在文章《WindowManager和Window的关系》中说到,每个Activity都包含一个Window,而每个Window都包含一个DecorView。DecorView是FrameLayout的子类,是根节点视图,默认包含了一个LinearLayout垂直布局,这个垂直布局上面是titlebar,下面是我们的内容布局mContentParent。在生成的时候会根据主题的设置来修改title

2017-04-02 12:49:10 1361 1

原创 Android界面生成流程:WindowManager和Window的关系

WindowManager和Window添加View的区别WindowManager中有个添加View的函数:public void addView(View view, ViewGroup.LayoutParams params)Window中有个添加View的函数:public void addContentView(View view, ViewGroup.LayoutParams param

2017-04-01 23:53:26 1357

Android EditText筛选+选择功能开发

Android EditText筛选+选择功能开发

2023-09-13

SideBar和HtmlText

一个SideBar和HtmlText功能

2022-03-30

apktool工具

apktool功能:反编译出apk资源文件。 使用方式: 把apktool 解压到任意位置 执行 在dos 改目录下 执行 apktool d xxx.apk test ,便会把编译后的资源存入test文件夹下。

2017-08-09

空空如也

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

TA关注的人

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