自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欸奥维

阅读,学习,整理,分享

  • 博客(45)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android基础终极篇--Service

Service 是一个可以在后台执行长时间运行操作而不使用用户界面的应用组件。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。 服务基本上分为两种形式:启动服务<pre data-original-code="当应用组件(如 Activity)通过调用 startService() 启动服务时,服务即处于“启动”状态。一旦启动

2016-09-17 17:57:08 1510

原创 Android ORM 框架之 greenDAO应用基础

greenDAO是时下Android最流行的一款ORM框架,其性能高,可加密,使用简洁,做android开发,如果会使用它,工作量会大大减小。其性能与其他ORM框架之比较可以查阅其官网。 目前greenDAO版本为3.1.1,greenDAO3相较于greenDAO2发生了较大的改变:可以使用注解声明schemas和实体。有两种方式使用greenDAO3,一种是使用java库的形式(greenDA

2016-09-08 02:00:14 5864 1

原创 Android ORM 框架之 Android中ORMLite应用基础

ORMLite是常用的一个ORM框架,她不止可以用在Android的sqlite数据库,也可以使用她操作其他常见的数据库。这儿是根据官方文档抽取来的android用法。一,添加依赖导入ormlite-core.jar和ormlite-android.jar:下载jar 或者build.gradle中添加: compile 'com.j256.ormlite:ormlite-android:5

2016-09-04 13:36:07 1648

原创 Android ORM 框架之 ActiveAndroid应用基础

ActiveAndroid作为轻量级的ORM框架,在快速开发中,使用很简单,满足大部分对数据库操作不复杂的应用。一,配置添加依赖build.gradle中添加:repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }}compile '

2016-09-03 04:57:58 2709

原创 理解ORM和数据持久化

一,什么是ORM对象关系映射(Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),用于在关系型数据库和业务实体对象之间作一个映射。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。说白了就是把关系型数据库封装成业务实体对象,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

2016-09-02 11:35:01 15689 3

原创 启动Activity时的方法调用(应用层)(MVC模式)

一,从桌面启动应用从桌面启动一个应用其实质也是从一个Activity中启动另一个Activity,比如官方的实例代码中: android/platform_packages_apps_launcher /** * 点击桌面图标启动Intent指向的Activity * * @param v The view representing the clicked s

2016-08-31 09:55:11 3600

原创 AndroidStudio代码检查,Lint检查,还有注解

一,IntelliJ 代码检查IntelliJ IDEA的具有强大,快速,灵活的静态代码分析。它可以检测编译器和运行时错误,提出改进和完善,甚至在编译之前。 代码检查基础(Code analysis basics)IntelliJ IDEA的具有强大,快速,灵活的静态代码分析。它可以检测编译器和运行时错误,提出改进和完善,你甚至编译之前。只要你有一些无效引用的代码,未使用的代码,非本地化的字符串,

2016-08-29 14:07:36 10131

原创 AndroidStudio-settings-General(纯图片)

General Auto ImportAppearanceCode CompletionCode FoldingConsoleEditor TabsGutter IconsPostfix CompletionSmart Keys PhpStorm 2016.2 Help :: General

2016-08-27 11:57:18 1119

原创 Android中的系统服务(代理模式)

一,系统启动Android设备的开机流程总得来分可以分为三部分: 加载引导程序引导程序bootloader是开机运行的第一个小程序,因此它是针对特定的主板与芯片的。bootloader有很多种,可以使用比较流行的如redboot、uboot、ARMBoot等,也可以开发自己的引导程序,它不是Android操作系统的一部分。引导程序也是OEM厂商或者运营商加锁和限制的地方。引导程序初始化硬件设备、创

2016-08-25 22:47:30 3889

原创 Android中的Context类簇(装饰模式)及Context用法详解,Application用法详解

类关系: Context类Context是一个抽象类,源码位于android.content包中。描述的是一个应用程序环境的信息,即上下文。通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent信息 ,得到各种服务(getSystemService)等。

2016-08-22 07:22:23 5930 1

原创 面向对象偶尔会迷惑的知识点

关于默认访问权限默认访问权限,也称友好访问权限 没显示指定为哪种访问权限( public、protected、private )。如果要访问默认权限修饰的类成员,只能与此类在同一个package中, 即使其子类也必须满足此条件。类成员是默认访问权限当子类和父类在同一个包中时,子类继承父类中不是private的成员变量作为自己的成员变量,也自然地继承父类中不是private的成员方法作为自己的

2016-08-20 23:41:10 675

原创 源码解析Android中的事件处理

一,事件处理Android提供了两套事件处理机制:1.基于监听的事件处理。2.基于回调的事件处理。基于回调的事件处理用于处理一些具有通用性的事件,基于监听的事件处理用于处理与具体业务相关的事件。基于监听的事件处理基于监听的事件处理是在指定view组件上绑定指定的监听器。比如点击事件: 可以以匿名内部类形式绑定监听器:button.setOnClickListener(new View.OnCl

2016-08-17 03:20:49 1843

原创 读源码:PopupWindow

读源码是为了了解并学习它的实现机制,并更好的运用它,如果在读源码之前已经知道它的怎么运用,这将会更容易理解源码。所以在这读源码开头我推荐阅读一下一位大神写的相关博文,浅显易懂,条理清晰: PopUpWindow使用详解(一)——基本使用 PopUpWindow使用详解(二)——进阶及答疑 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是一个

2016-08-12 00:31:31 1936

原创 读源码:TabLayout

一,内部类及分析其关系: Tab类和TabView类和SlidingTabStrip类为TabLayout提供了三个基本的元素。 TabLayoutOnPageChangeListener和ViewPagerOnTabSelectedListener实现了ViewPager类的两个接口,作用是监听ViewPager页面改变和Tab选中状态。 PagerAdapterObserver为观察者监控

2016-08-04 14:27:00 1892

原创 ViewCompat:android官方实现兼容的一个帮助类

类结构分析,ViewCompat先是在接口ViewCompatImpl中列出由于版本原因不兼容的方法,并且定义一个常量,初始值if得到的API版本,然后在本类中实现此方法,最后是内部类层层继承

2016-08-02 05:50:00 10212 2

原创 UiModeManager 最简单切换模式的途径

这是源码,通俗易懂,就贴出来了。

2016-08-01 11:26:46 4843

转载 Inotify与Android文件监控FileObserver原理

Inotify: 高效、实时的Linux文件系统事件监控框架概要 - 为什么需要监控文件系统?在日常工作中,人们往往需要知道在某些文件(夹)上都有那些变化,比如:通知配置文件的改变跟踪某些关键的系统文件的变化监控某个分区磁盘的整体使用情况系统崩溃时进行自动清理自动触发备份进程向服务器上传文件结束时发出通知通常使用文件轮询的

2016-07-31 20:43:06 4277

转载 Java泛型详解

我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数、小数和字符串,例如:x = 10、y = 10x = 12.88、y = 129.65x = "东京180度"、y = "北纬210度"针对不同的数据类型,除了借助方法重载,还可以借助自动装箱和向上转型。我们知

2016-07-31 20:31:21 868

原创 Java集合,文章收藏

集合框架详细讲解点击查看大神讲解Overview 对Java Collections Framework,以及Java语言特性做出基本介绍。ArrayList 结合源码对ArrayList进行讲解。LinkedList 结合源码对LinkedList进行讲解。Stack and Queue 以AarryDeque为例讲解Stack和Queue。TreeSet

2016-07-29 15:14:51 611

原创 深入理解java反射机制

一,java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。 Java垃圾回收(Garbage Collection):自动释放不用对象

2016-07-24 02:32:36 33866 9

翻译 Tab相关控件API中的介绍翻译比较:TabLayout,FragmentTabHost,AppBarLayout

第一组:TabLayout和TabItemTabLayout类public class TabLayout 继承自HorizontalScrollView 包中的位置:android.support.design.widget.TabLayoutTabLayout 提供一个显示tabs的水平layout . 通过 TabLayout.Tab 实例添加显示的tabs成员.可以通过 newTa

2016-07-21 01:01:43 1549

原创 Android短信发送,监听,及其工具类封装

一,封装 :发送短信发送短信比较简单,主要有两种实现方式,一种是使用Intent通过系统短信应用,一种是直接调用短信接口发送短信;根据使用场景不同我一共封装了三个方法:

2016-07-20 02:47:39 4582

翻译 ViewPager,PagerAdapter,FragmentPagerAdapter,FragmentStatePagerAdapter的API介绍翻译

ViewPager类:public class ViewPager 继承自 ViewGroup 包中的位置:android.support.v4.view.ViewPager定义:布局管理器允许用户左滑右滑含有数据的pages.使用:只需要提供一个PagerAdapter 的实现来产生视图显示的pages.ViewPager 最常结合 Fragment使

2016-07-18 09:59:10 1918

原创 收藏的常用网站整理

问题搜索查询:Stack Overflowhttp://stackoverflow.com/ Android Open Source Projecthttps://code.google.com/p/android/ 知乎https://www.zhihu.com/ IT屋http://www.it1352.com

2016-07-18 09:06:54 517

原创 ViewPager中的PagerTabStrip在运行测试的时候不显示问题解决

我一个现有的app,使用了ViewPager和PagerTabStrip,它们都是使用多版本的Android SDK 和 com.android.support:appcompat-v7都正常运行并且有一段时间了.但当我试图去完善并且把目标 SDK版本从app的 23 改成 24 而且 com.android.support:appcompat-v7 版本也从 23.4.0 改成 24.0.0.的时候,我发现 PagerTabStrip 从 ViewPager消失不见了

2016-07-18 06:40:55 993

原创 Broadcast Recevier回顾及自定义DeviceAdminReceiver模板完善

Broadcast Recevier 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态。 应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastRece

2016-07-16 01:07:00 4178 1

原创 项目中添加module作为依赖及删除依赖模块的正确姿势

添加模块作为依赖时,不小心出来个从错误Error:Dependency UtilsApp:app:unspecified on project myapplication resolves to an APK archive which is not supported as a compilation dependency. File: D:\ProgramFiles(x86)\UtilsApp\app\build\outputs\apk\app-release-unsigned.apk

2016-07-13 10:30:11 16691 2

原创 Android Studio自定义模板:简单自定义DeviceAdminReceiver模板

一,原有模板分析二,简单自定义模板:DeviceAdminReceiver

2016-07-13 04:41:02 2358

原创 [Genymotion] Unable to start the virtual device

Unable to start the virtual device.VirtualBox cannot start the Virtual device.

2016-07-10 19:47:15 977

原创 正确创建AVD,告别功能不全的Genymotion

emulator: WARNING: Crash service did not start 模拟器:警告:崩溃服务没有启动 emulator: WARNING: VM heap size set below hardware specified minimum of 256MB模拟器:警告:VM堆大小设置低于规定的最低256M硬件emulator: WARNING: Settin

2016-07-09 13:03:00 13338 1

原创 Adapter中常见遇到的NullPointerException

View.inflate():找出 res/layout 下的 xml 布局文件填充到父布局,并且实例化,此时,仅仅在内存中创建了这个对象而已,在界面上不会显示出来这个对象findViewById():根据id获取布局文件中的布局和空间,只要使用android:id=”“属性的都可以使用此方法获取。默认是在主xml布局文件中查找,如果要动态加载的布局文件,则要在使用: 声明的布局名.findViewById(R.id.tv_grid)

2016-07-05 23:13:31 22133

原创 问题 System.out.println(versionName);输出结果:System.out: INSTANT_RUN

问题System.out.println(versionName);输出结果:System.out: INSTANT_RUN代码:private void initDate() { PackageManager pm= getPackageManager(); try { PackageInfo packageInfo= pm.get

2016-07-04 03:12:31 764

原创 使用Stacktrace处理异常

Stacktrace(堆栈跟踪)是一个非常有用的调试工具. 在未捕获的异常被抛出时(或者手动制造堆栈跟踪的时候)它让你看到你调到的堆(意思是,在某一点调用方法的堆). 不仅显示出出现错误的地方, 也显出程序在那个地方是如何结束的.

2016-06-28 00:30:52 55226 4

原创 NumberFormatException相关的error总结

java.lang.NumberFormatException 数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常.

2016-06-27 16:43:39 111350 3

原创 Ubuntu下设置apktool

1、到官网下载以下文件:apktool1.5.2.tar.bz2和apktool-install-linux-r05-ibot.tar.bz2。 2、解压后得到aapt、apktool、apktool.jar三个文件,将它们全部拷贝至/usr/bin目录下。 3、终端输入apktool即可。我的做法是把三个文件放在了我的android-adk-linux目录下。

2016-02-14 20:26:25 878

原创 Ubuntu中应用程序添加快速启动器

命令行操作内容:cd /usr/share/applicationssudo gedit xxx.desktop打开需要编辑的文本内容为:[Desktop Entry]Version=1.0Name=xxx (应用名称)Exec=/home/username/xxx.sh(这个是启动程序需要执行的文件路径名)Terminal=falseIcon=/home/usernam

2016-01-27 03:07:34 1517

转载 Err http://ppa.launchpad.net trusty/main amd64 Packages 404 Not Found

编译自:http://ask.xmodulo.com/find-remove-obsolete-ppa-repositories-ubuntu.html原创:LCTT https://linux.cn/article-3874-1.html译者: GOLinux本文地址:https://linux.cn/article-3874-1.html

2016-01-27 02:06:19 6317 1

翻译 InputEvent .java

/** * 注释翻译 by 耀威 on 2016-01-08. */package android.view;import android.os.Parcel;import android.os.Parcelable;import java.util.concurrent.atomic.AtomicInteger;/** * 输入事件的共同基类 */public abstra

2016-01-09 17:07:23 1436

原创 3D开发基础之投影,变换,光照,纹理

一,投影

2015-11-12 12:03:57 1069

原创 学习笔记总结:Android中OpenGL ES的着色语言

一,概述ES着色语言源自C语言,同时也有一些不同的优良特性,其易于被开发人员掌握。ES着色语言主要有以下特性:是一种高级的过程语言;对顶点着色器,片元着色器使用的是同样的语言;基于C/C++的语法及流程控制;完美支持向量与矩阵的各种操作;通过类型限定符来管理输入与输入;拥有大量的内置函数提供丰富的功能。二,着色语言基础1,基本

2015-11-12 11:56:26 956

Android KeyEnvent派发流程图

流程图 图片

2016-08-16

疯狂android讲义第三版,不带书签

第三版,不带书签

2016-04-22

android app项目框架总结(思维导图)

app项目便利开发,总结的项目结构框架图

2015-12-26

空空如也

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

TA关注的人

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