- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 2017.11.19
1.Bundle传值与取值 http://blog.csdn.net/xiejunna/article/details/516131642.Android AutoLayout全新的适配方式 http://blog.csdn.net/lmj623565791/article/details/499909413.Butter Knife http://blog.csdn.net/qq_31387
2017-11-27 10:19:53
235
原创 JNI和NDK编程入门
JNI本意(Java Native Interface)Java本地接口,它是为了方便Java调用C,C++等本地代码所封装的一层接口。我们知道,Java的优点就是跨平台,但是作为优点的同时,其在本地交互的时候就出现了短板。Java的跨平台特性导致其本地交互的能力不够强大,一些和操作系统相关的特性Java无法完成,于是Java提供JNI专门用于和本地代码交互,这样就增强了Java语言本地交互能力。通
2017-04-08 15:26:31
401
原创 获取Crash信息、分包
一、获取Crash信息public class CrashHandler implements UncaughtExceptionHandler { private static final String TAG = "CrashHandler"; private static final boolean DEBUG = true; private static final S
2017-04-08 09:36:33
370
原创 Android的线程和线程池
一、Android中线程形态1.AsyncTaskAsyncTask是一个轻量级的异步任务类,它在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI。AsyncTask封装了Thread和Handler,通过它可以更加方便得执行后台任务以及在主线程中访问UI,但是它并不适合特别耗时的后台任务,特别耗时的任务建议使用线程池。/** * 参数类型,后台任务进度,结
2017-04-08 09:35:34
315
原创 Bitmap的加载和Cache
一、Bitmap的高效加载Bitmap(位图)在Android中指的是一张图片,可以是png格式也可以是jpg等其他常见的图片格式。那么如何加载一张图片呢?BitmapFactory类提供了四类方法,decedeFile,decodeResource,decodeStream,decodeByteArray,分别用于支持从文件系统,资源,输入流以及字节数组中加载出一个Bitmap对象,其中deced
2017-04-08 09:35:14
253
原创 Android的消息机制
Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。MessageQueue翻译为消息队列,顾名思义,它的内部存储了一组消息,以队列的形式对外提供插入和删除的工作。其内部真正是通过单链表的数据结构来存储消息列表的。MessageQueue是一个消息的存储单元,它不能去处理消息,处理消息由Looper来负责,Looper
2017-04-08 09:34:51
409
原创 Android的Drawable
一、Drawable简介Drawable有很多种,它们都表示一种图像的概念,但是它们又不全是图片,通过颜色也可以构造出各种各样的图片效果。在实际开发中,Drawable常被用来作为view的背景使用。Drawable一般都是通过XML来定义的,也可以用代码实现,但是比较复杂,在Android中,Drawable是一个抽象类,它是所有Drawable对象的基类,每个具体的Drawable都是它的子类。
2017-04-01 11:16:29
379
原创 理解RemoteViews
一、RemoteViews的应用RemoteViews在实际开发中,主要用在通知栏和桌面小部件的开发过程中。通知栏主要是通过NotificationManager的notify方法来实现的,图除了默认效果外,还可以另外定义布局。桌面小部件是通过AppWidgetProvider来实现的,AppWidgetProvider本质上是一个广播。通知栏和桌面小部件的开发过程中都会用到RemoteViews,
2017-04-01 11:16:14
361
原创 View的工作原理
一、初识ViewRoot和DecorViewViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在 ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和D
2017-04-01 11:16:00
380
原创 Android View的体系结构
一、View的基础知识1.什么是view View是Android中所有空间的基类。View是一种界面层的控件的一种抽象,它代表了一个控件。除了View,还有ViewGroup,从名字来看,它可以翻译为控件组,言外之意是ViewGroup包含了许多个控件,即一组View。在Android的设计中,ViewGroup也是继承了View,这就意味着View本身就可以是单个控件也可以是由多个控件组成的一
2017-03-29 17:57:23
812
原创 Android IPC机制(三)
5.使用ContentProviderContentProvider是Android中提供的专门运于不同应用间进行数据共享的方式,这一点来看,它天生适合进程间通信,其底层也是Binder机制实现的,其使用起来比AIDL要简单点,因为系统已经所了封装。 系统预置了许多ContentProvider,比如通讯录信息,日程表信息等。 我们知道ContentProvider中的六个方法都运行在Conte
2017-03-27 20:58:06
325
原创 Android IPC机制(二)
Android中的IPC方式1.使用Bundle我们知道,四大组件中 三大组件(activity,service,Receiver)都是支持在Intent中传递Bundle数据的,由于Bundle实现了Parcelable接口,所以它可以方便的在不同的进程间传输,基于这一点,当我们在一个进程中启动了另一个进程的Activity,asevice,receiver,我们可以用Bundle中附加我们需要传
2017-03-27 14:35:59
1057
原创 Android IPC机制(一)
Android IPC机制简介1.IPC是Inter-Process-Communication是缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。首先来说一下什么是进程,什么是线程。按照操作系统中描述的概念,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程一般指一个执行单元,在PC或者移动设备上指一个程序或者一个应用,一个进程可以包含多个线程,因此进程和线程
2017-03-26 15:09:28
499
原创 Activity的生命周期和启动模式
一.Activity的生命周期全面解析这里介绍的生命周期分为两个部分,一部分是典型情况下的生命周期,另一部分是异常情况下的生命周期。所谓典型情况下的生命周期,是指在有用户参与的情况下,Activity所经过的生命周期的变化;而异常情况下的生命周期是指Activity被系统回收或者当前设备的Configuration(配置)发生改变从而导致Activity重建,异常情况下的生命周期的关注点和典型情况有
2017-03-24 21:01:45
358
原创 《Android群英传》学习记录(四)
第八章1.IntentFlag启动模式 Intent.FLAG_ACTIVITY_NEW_TASK 启动每个activity都在一个新栈里 Intent.FLAG_ACTIVITY_SINGLE_TOP 和singleTop类似 Intent.FLAG_ACTIVITY_CLEAR_TOP 和singleTask类似 Intent.FLAG_ACTIVITY_NO_HISTORY 当该activ
2017-03-23 19:28:01
537
原创 《Android群英传》学习记录(二)
第四章1.使用ViewHolder模式提高效率 viewholder模式是提升listview效率的一个很重要的方法,viewholder充分利用了listview的视图缓存机制,避免每次在调用getview的时候都通过findviewbyid()实例化控件,下面是一个通用的viewHolder,利用了泛型,以后不用再adapter内部再定义内部类viewholder了public class V
2017-03-21 16:00:17
297
原创 《Android群英传》学习记录(一)
第一章1.Android系统架构Android由底层往上分为4个主要功能层,分别是linux内核层(Linux Kernel),系统运行时库层(Libraries和Android Runtime),应用程序架构层(Application Framework)和应用程序层(Applications)。 Linux内核层 Android以linux操作系统内核为基础,借助Linux内核服务实现
2017-03-20 23:51:19
1122
原创 okhttp-OkGo(okhttp-util升级版)网络请求框架(二)
OkGo使用案例一.基本功能 https://github.com/jeasonlzy/okhttp-OkGo/blob/master/README_JSONCALLBACK.md //请求发挥的实体 public class ResultEntity<T> { private int resultCode; private String resultMSG; priva
2017-03-20 12:33:07
2043
原创 okhttp-OkGo(okhttp-util升级版)网络请求框架(一)
OkGo - OkHttpUtils-2.0.0 升级后改名 OkGo,全新完美支持RxJava该库是封装了okhttp的标准RESTful风格的网络框架,可以与RxJava完美结合,比Retrofit更简单易用。支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,可以自定义返回对象,支持Https和自签名证书,支持超时自动重连,支持cookie与sessi
2017-03-18 17:10:59
6352
原创 Android studio之Gradle
什么是Gradle?Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。安装Gradle在Android Studio系列教程一–下载与安装中新建项目成功后会下载Gradle,貌似这个过程不翻墙也是可以下载,但是访问特别慢,建议翻墙下载。那么下载的Gradle到什么地方呢?Mac上
2017-03-17 17:05:38
398
原创 FinestWebView自定义WebView 的使用
添加依赖 compile 'com.thefinestartist:finestwebview:1.0.6'在AndroidManifest.xml文件中注册activity和声明权限<uses-permission android:name="android.permission.INTERNET" /><activity android:name="com.thefinestartist
2017-03-16 19:03:56
667
转载 RecyclerView的使用和封装
整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。 你想要控制其显示的方式,请通过布局管理器LayoutManager 你想要控制Item间的间隔(可绘制),请通过ItemDecoration 你想要控制Item增删的动画,请通过ItemA
2017-03-16 15:41:40
426
原创 TimePicker,DatePicker一起使用
DatePicker布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent
2017-03-16 14:58:02
710
原创 《第一行代码》学习记录(四)
第十章1.webViewwebView.getSettings().setJavaScriptEnabled(true);//支持JavaScript脚本 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLo
2017-03-16 14:09:52
241
转载 Android-PickerView的使用
介绍Android-PickerView是一款仿iOS的PickerView控件,有时间选择和选项选择,并支持一、二、三级联动。 有时间和选项这两种选择器 选项选择器支持一二三级联动 时间选择器支持选择年份范围 支持自定义文字、颜色、大小设置 支持背景颜色更换,有夜间模式需求的问题可以解决了 支持背景颜色更换,有夜间模式需求的问题可以解决了 支持“年,月,日,时,分,秒”、“省,市,区”等选项的单位
2017-03-16 12:41:07
1728
转载 java线程池
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。 n
2017-03-15 16:15:33
311
原创 《第一行代码》学习记录(三)
第八章 Notification通知 书本上介绍的创建方式已经过时了 //第一步:获取状态通知栏管理 NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);//第二步:实例化通知栏构造器NotificationCompat.Builder: NotificationCom
2017-03-15 11:29:48
311
原创 Android Material design 中的新控件使用
TabLayout Snackbar FloatingActionButton AppBarLayout CoordinatorLayout TextInputLayout 侧滑NavigationView CardView RecyclerView CollapsingToolbarLayout MaterialDialog
2017-03-15 10:15:46
849
原创 android-times-square日期控件使用
1.github地址https://github.com/square/android-times-square2.引用依赖compile 'com.squareup:android-times-square:1.6.5@aar'//时间选择器3.使用//明年 final Calendar nextYear = Calendar.getInstance(); nextYear.add(Calenda
2017-03-14 18:17:59
743
原创 Caldroid日历控件的使用
1.github地址https://github.com/roomorama/Caldroid2.添加依赖compile 'com.roomorama:caldroid:3.0.1'3.使用//在activity的oncreate方法中创建calendarFragment实例 caldroidFragment = new CaldroidFragment();//另一种样式的日期,可以自定义 cal
2017-03-14 17:22:13
388
原创 滑动切换Activity
博客地址http://blog.csdn.net/jiangxuqaz/article/details/47264473
2017-03-14 14:58:43
229
原创 《第一行代码》学习记录(二)
第四章 fragment的生命周期 //当activity和fragment直接建立联系是调用 onAttach() // onCreate() //fragment创建视图是调用 onCreateView() //确保与fragment相关联的activity一切创建完毕是调用 onActivityCreated() // onStart() // onResume() // onP
2017-03-13 20:47:57
235
转载 AndroidAutoLayout 完美适配
git地址:https://github.com/hongyangAndroid/AndroidAutoLayout添加依赖: compile 'com.zhy:autolayout:1.4.5'使用: 在你的项目的AndroidManifest中注明你的设计稿的尺寸。 <meta-data android:name="design_width" android:value="768"> </met
2017-03-13 18:21:25
697
原创 《第一行代码》学习记录(一)
第二章 隐藏标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); 这句话要在setContentView()前调用 创建菜单Menu,在res文件下创建一个menu的文件夹,然后在里面写xml文件 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.a
2017-03-13 15:00:49
352
原创 Android框架学习之GreenDao(二)数据库升级
主要思路,先备份数据,在还原数据博客地址:http://blog.csdn.net/sinat_15877283/article/details/54583422
2017-03-12 14:19:00
219
原创 Android框架学习之Retrofit(三)retrofit和okhttp的区别
张鸿祥博客http://blog.csdn.net/lmj623565791/article/details/51304204 okhttp工具类 https://github.com/hongyangAndroid/okhttp-utils
2017-03-10 17:47:21
920
转载 Android框架学习之GreenDao(一)
Giuthub:https://github.com/greenrobot/greenDAO greenDao官网:http://greenrobot.org/greendao/ greenDao2的引入地址(Github上面已经更新到greenDao3)一,添加依赖 在as中导入相关的包 compile'org.greenrobot:greendao:3.0.1' compile'org.gr
2017-03-10 17:43:57
863
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人