- 博客(85)
- 资源 (9)
- 收藏
- 关注
转载 工厂设计模式(三)--抽象工厂模式
工厂设计模式可分为: 简单工厂模式 工厂方法模式 抽象工厂模式 第三篇我们来聊聊抽象工厂模式最近想学习一些设计模式的知识,所以在网上参考了一些文章和例子,为了尊重原创,这里先感谢原创作者的辛苦付出,如对原创作者造成不利的影响,请联系本人博客。 晨鸣的博客理解 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。
2017-08-31 11:21:24 1363
转载 工厂设计模式(二)--工厂方法模式
工厂设计模式可分为: 简单工厂模式 工厂方法模式 抽象工厂模式 第二篇我们来聊聊工厂方法模式最近想学习一些设计模式的知识,所以在网上参考了一些文章和例子,为了尊重原创,这里先感谢原创作者的辛苦付出,如对原创作者造成不利的影响,请联系本人博客。 晨鸣的博客理解 定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工
2017-08-31 11:07:40 1033
转载 工厂设计模式(一)--简单工厂模式
工厂设计模式可分为: 简单工厂模式 工厂方法模式 抽象工厂模式 第一篇我们来聊聊简单工厂模式最近想学习一些设计模式的知识,所以在网上参考了一些文章和例子,为了尊重原创,这里先感谢原创作者的辛苦付出,如对原创作者造成不利的影响,请联系本人博客。 晨鸣的博客理解 假设某些实例具有相同的方法,可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类,那么可以考虑使用简单设计模式来实现
2017-08-31 10:50:40 1682
转载 自定义View执行invalidate()方法,为什么有时候不会回调onDraw()
自定义View执行invalidate()方法,为什么有时候不会回调onDraw()自定义一个view时,重写onDraw。调用view.invalidate(),会触发onDraw和computeScroll()。前提是该view被附加在当前窗口. view.postInvalidate(); //是在非UI线程上调用的自定义一个ViewGroup,重写onDraw。onDraw可能不会被调用,
2017-08-24 14:52:24 4774
转载 ViewHolder为什么要被声明成静态内部类
ViewHolder为什么要被声明成静态内部类这个是考静态内部类和非静态内部类的主要区别之一。非静态内部类会隐式持有外部类的引用,就像大家经常将自定义的adapter在Activity类里,然后在adapter类里面是可以随意调用外部activity的方法的。当你将内部类定义为static时,你就调用不了外部类的实例方法了,因为这时候静态内部类是不持有外部类的引用的。声明ViewHolder静态
2017-08-24 14:31:20 1689
转载 如何实现Activity窗口快速变暗
利用只读属性动画+WindowManager /* *@param from\>=0&&from\<=1.0f * @param to\>=0&&to\<=1.0f * * */ private void dimBackground(final float from, final float to) { final Wind
2017-08-24 13:55:06 438
原创 实现Activity和Fragment之前通信
Activity 传值给 FragmentActivity使用Bundle 传值:Bundle bundle = new Bundle();bundle.putString("value", "Hello world");fragment.setArguments(bundle);Fragment获取值:Bundle bundle = this.getArguments
2017-07-20 15:28:59 409
原创 解决WebViewActivity 退出后还在播放音视频的问题
@Override protected void onResume() { super.onResume(); webView.onResume(); } @Override protected void onDestroy() { super.onDestroy(); webView.destro
2017-07-10 10:34:43 1675
原创 Android强制字体不随系统改变而改变
@Override public void onConfigurationChanged(Configuration newConfig) { if (newConfig.fontScale != 1)//非默认值 getResources(); super.onConfigurationChanged(newConfig);
2017-07-10 10:17:37 4393
原创 Json字符串轻松转为实体工具-GsonFormat
Json字符串轻松转实体对象的工具: GsonFormat官方下载链接(需要翻墙):https://plugins.jetbrains.com/plugin/7654-gsonformat不用翻墙:http://download.csdn.net/detail/xuxian361/9891689下载后在AS 插件管理器安装,安装过程如下:选择刚刚下载
2017-07-07 15:20:51 522
原创 Maven从入门到提高(四)
发布项目/Library到Maven 仓库在上一篇博客中《Maven从入门到提高(三)-Mac下使用Nexus搭建Maven私服》我们已经搭建好了Maven私服,今天我们就来把我们的项目/Library 发布到我们Maven 服务器中。准备工作首先要有一个Android 项目,我以我自己GitHub上的一个例子作说明。 GitHub项目地址: https://github.com/xuxian3
2017-03-07 10:11:27 350
原创 Maven从入门到提高(三)
Mac下使用Nexus搭建Maven私服第一步下载安装JDK,目前Nexus 最新版本需要JDK 8及以上,该部分可以自己google/百度第二步下载Nexus, 下载链接:https://www.sonatype.com/download-oss-sonatype(在此说明一下,由于本人Mac 的其他项目还在使用JDK7,所以我这里还是依然使用Nexus 2.x版本,Nexus3.x 最新版本尚未
2017-03-06 16:49:26 342
原创 Maven从入门到提高(二)
发布Android studio项目到本地Maven仓库说明Android studio 可以在build.gradle文件中添加如下的格式来引用第三方库,如:compile 'com.dragonpass.sundy.modulefounder:limousine:1.0.3'该格式由三个部分组成,你可以在pom 文件中找到。<?xml version="1.0" encoding="UTF-8"
2017-03-06 14:16:08 301
转载 Maven从入门到提高(一)
Maven从入门到提高(一)认识MavenMaven 是什么鬼Maven 的前世今生Maven 的目标Maven 的约定优于配置Maven 是什么鬼Maven 是一个项目管理和整合工具。 Maven 能够帮助开发者完成以下工作: • 构建 • 文档生成 • 报告 • 依赖 • SCMs • 发布 • 分发 • 邮件列表举个实用一点的例子:你可以把一个独立的模块分出来变成一个
2017-03-02 15:52:46 466
原创 Android WebView 禁止缩放(手势、点击)
Android WebView 禁止缩放(手势、点击)webSettings.setBuiltInZoomControls(false);webSettings.setSupportZoom(false);webSettings.setDisplayZoomControls(false);
2016-03-17 16:48:13 14309 4
转载 Object类中的方法介绍
Object类中的方法介绍类Object是类层次结构的根类,每一个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法。jdk1.5中,描述了该类中的11个方法1.getClasspublic final ClassObject> getClass()返回一个对象的运行时类。该 Class 对象是由所表示类的 static synchroni
2015-11-10 17:18:17 656
转载 Java中的private、protected、public和default的区别
Java中的private、protected、public和default的区别(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。(2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,
2015-11-10 17:09:05 505
转载 内存溢出和内存泄露的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终
2015-10-29 18:26:25 646
转载 常用SQL语句 - 基于MySQL数据库
常用SQL语句 - 基于MySQL数据库基础连接数据库mysql -h10.20.66.32 -uroot -p123456-h后面是mysqlServer所在地址,-u后面是用户名,-p后面是密码。查看数据库show databases;使用数据库use test;查看表show tables;
2015-10-25 16:56:09 709
原创 Android的系统架构
Android的系统架构首先来看看Android 系统架构图:从上图可以看出,Android系统架构分为四层结构,从下往上分别是Linux内核层、系统运行库层、应用程序框架层以及应用程序层。(一)Linux内核层Android是基于Linux2.6的内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。(二
2015-10-21 18:17:07 906
原创 Service和IntentService的区别
Service和IntentService的区别1. 首先IntentService是继承自Service;2. Service不是一个单独的进程,它和应用程序在同一个进程中;3. Service也不是一个线程,所以我们要避免在Service中进行耗时的操作;4. IntentService使用队列的方式将请求的Intent加入队列,然后开启了一个Worker Thre
2015-10-21 14:02:55 5319
转载 Android Service的两种启动方式
Android Service的两种启动方式1. Context.startService()Context.startService()启动方式的生命周期:启动时:startService -> onCreate() -> onStart()停止时:stopService -> onDestroy()如果调用者直接退出而没有停止Service,则Service 会
2015-10-21 13:02:49 582
原创 收录一些常用的面试题目含参考答案(二)
第二部分1. 请解释Android程序运行时权限与文件系统权限的区别Android程序运行时权限是虚拟机(Dalvik)授权的;文件系统权限是linux内核授权的;2. Android横竖屏切换Activity的生命周期不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次;设
2015-10-20 22:32:11 615
转载 Activity四种启动模式
Activity启动方式有四种,分别是:standardsingleTopsingleTasksingleInstance可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMode属性,
2015-10-20 22:22:30 419
转载 JAVA通过JNI调用本地C语言方法
ava特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。
2015-10-20 21:41:58 1532
原创 Android打开指定应用程序
Android中可以打开指定的应用程序,不过前提是你已经知道该应用程序的packageName, 及Activity Name。例如我想指定打开某个浏览器页面:Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");Uri uri = Uri.parse("http://www.163.
2015-10-20 19:54:44 1049
转载 Android中ContentProvider组件详解
Android中ContentProvider组件详解1. ContentProviderContentProvider(内容提供者)是Android的4大组件之一。主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用程序通过ContentResolver来对其共享的的数据进行增删改查操作。ContentProvider分
2015-10-20 18:01:34 648
原创 Android 的数据存储方式有哪些?
Android 的数据存储方式有哪些?SharePreference用来存储“Key - Value Pairs”格式的数据,他是一个轻量级的键值存储机制,只可以存储基本的数据类型,可以通过它保存一些上次用户所做的修改操作。文件存储方式它通过FileInputStream和FileOutputStream对文件进行操作。但是在Android中,文件是一个应用程序
2015-10-20 16:54:42 563
原创 Android SQLite数据库版本更新
Android SQLite数据库版本更新面试中经常会问到Android 中SQLite 数据库版本的更新问题,我们需要怎样去回答呢?下面是本人的一些认识,仅供参考。当你创建一个类并继承SqliteOpenHelper时,会要求你实现他的两个回调方法:onCreate()和onUpgrade()方法。顾名思义,onCreate()方法就是就是创建数据库是调用,o
2015-10-19 22:46:55 783
原创 浅谈单线程模型中Message、Handler、Message Queue、Looper之前的关系
浅谈单线程模型中Message、Handler、Message Queue、Looper之前的关系1、MessageMessage即为消息,可以理解为线程间交流的信息。处理数据后台线程需要更新UI,你可以发送Message内含一些数据给UI线程。2、HandlerHandler 即为处理者,是Message的主要处理者,负责Message的发送,Message内容的
2015-10-18 22:50:06 1461
原创 Android事件分发机制总结
Android事件分发机制总结当我们去面试的时候,面试官都会问一问Android 里面的事件分发机制,如果要详细说的话估计没有几个能够完整的描述出来。所以为了我自己也为了其他去面试的小伙伴,我也出来总结一下Android 里面的事件分发机制,起码这样回答能够得70分吧,呵呵。1. 只要你触摸到任何一个控件(或者说View),就一定会调用该控件的 dispatchTo
2015-10-17 20:48:44 601
原创 Android学习Broadcast Receiver(广播接收者) 注意事项
一般去面试都可能会问到Android 的4大组件之一:Broadcast Receiver(广播)那么面试中需要注意一些什么东西呢?1. 什么是Broadcast Receiver (What)? 下面是Android Doc中关于BroadcastReceiver的概述:①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如
2015-10-17 16:45:42 3261
原创 面试中有可能遇到的算法题--Java算法
面试中有可能遇到的算法题--Java算法最近别人都问我是不是发神经,怎么突然离职了。我也只是呵呵一笑,不以为然。程序猿离职无需理由,做了两年6个月还没有跳过槽就更神奇了。这个只有程序猿才知道。好了,废话少说。最近面试中遇到了一些Jave算法的题目,跟各位分享分享,毕竟你也有可能遇到,这个比在街上遇到郭敬明跟姚明走在一起(还手牵手)的机会更大。题目
2015-10-17 15:18:01 3794 2
原创 Activity横竖屏切换, 生命周期变化
Activity横竖屏切换生命周期变化1. 新建一个Activity并把各个生命周期都打印(未配置该Activity 的android:configChanges)2. 运行Activity, 得到如下打印信息onCreateonStartonResume3. 切换横屏时, 打印onSaveInstanceStateonPauseon
2015-10-17 14:39:59 584
原创 收录一些常用的面试题目含参考答案(一)
第一部分1.Android 中的动画有哪几类?两种:Tween(补间)动画Frame(帧)动画Tween 动画可以使视图组件移动、放大、缩小以及产生透明度的变化;Frame 动画通过顺序的播放排列好的图片来实现,类似电影;2.Handler 机制的原理Android 提供了Handler 和 Looper 来满足线程间的通信。Handler
2015-10-17 13:31:56 692
转载 (如何)从数组创建ArrayList
我有一个数组,初始化如下:Element[] array = {new Element(1), new Element(2), new Element(3)};我希望将这个数组转化成一个ArrayList类的对象。解决方案new ArrayList(Arrays.asList(array))
2015-10-15 22:11:53 5202
转载 遍历HashMap的最佳方法
遍历HashMap中元素的最佳方法是什么?解决方案这样遍历entrySet:public static void printMap(Map mp) { Iterator it = mp.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry)it.next();
2015-10-15 22:08:51 555
翻译 使用Android Studio签名打包APK
使用Android Studio签名打包APK翻译来源:https://developer.android.com/tools/publishing/app-signing.html Signing Your App in Android Studio为了打包签名你的APP,你要按照以下步骤: 1. 在Android Studio 的菜单栏,找到 Build, 点击Build > Gener
2015-10-09 16:39:07 773
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人