自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(81)
  • 资源 (1)
  • 收藏
  • 关注

原创 Google 技术交流会总结

之前参加深圳Google技术交流会,了解了有关于Android P版本的一些信息,下面主要列举下可能与我们App有关的一些知识点:a、Android P版本变更及应用兼容。1.必须将targetSdkVersion升级为26+、minVersionSdk升级为17+(App如果需要发布Google play市场,我们目前是minVersionSdk:16)。*2018年8月 新...

2019-04-03 09:40:01 360

原创 Android编程规范

前言好的命名规则能够提高代码质量,使得新人加入项目的时候降低理解代码的难度; 规矩终究是死的,适合团队的才是最好的; 命名规范需要团队一起齐心协力来维护执行,在团队生活里,谁都不可能独善其身; 一开始可能会有些不习惯,持之以恒,总会成功的。制定好了规范,就要遵守,有了统一的规范,项目才好维护,相互之间才好review代码,便于开发与维护。一、编程规范(一)命名风格1、...

2019-03-25 18:07:06 494

转载 Java工厂模式

Java工厂模式看了这么多关于工厂模式的讲解,还是觉得这篇文章讲的好理解,贴出来和大家分享分享。 一、引子             话说十年前,有一个****户,他家有三辆汽车——Benz奔驰、Bmw宝马、Audi奥迪,还雇了司机为他开车。不过,****户坐车时总是怪怪的:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi说“开奥迪车!”。你一定

2015-01-19 15:22:19 323

转载 十大技巧优化Android App性能

无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的。那么,如何能开发出更高性能的Android App?相信是软件开发公司以及广大程序员们头疼的一大难题。今天,就给大家提供几个提高Android App性能的技巧。AD:WOT2015 互联网运维与开发者大会 热销抢票

2015-01-15 08:55:34 308

转载 Android 开发如何做好内存优化

Android的一个应用程序的内存泄露对别的应用程序影响不大。为了能够使得Android应用程序安全且快速的运行,Android的每个应用程序都会使用一个专有的Dalvik虚拟机实例来运行,它是由Zygote服务进程孵化出来的,也就是说每个应用程序都是在属于自己的进程中运行的。AD:WOT2015 互联网运维与开发者大会 热销抢票编者按:文中有些内容会有所争

2015-01-15 08:54:32 220

转载 Java中byte转换int时与0xff进行与运算的原因 (以及反码、补码知识点)

java中byte转换int时为何与0xff进行与运算在剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) {  String ret = "";  for (int i = 0; i    String hex = Integer.toHexString(b[i] & 0xFF);   if (hex.l

2015-01-14 10:41:19 293

转载 android源码解析 ---- camera 照相机 摄像机

文章出处:http://blog.csdn.net/dany1202/archive/2011/01/26/6164450.aspx 一.camera启动1.一个activity启动调用流程:    onCreate()-->onStart()-->onResume()    onCreate():    1.可添加所需布局文件,画界面。    2.开启线程,启

2014-06-11 15:27:33 387

转载 ViewHolder模式超简洁写法,很cool!

ViewHolder是什么就不解释了。 大家通常怎么写ViewHolder呢?ViewHolder holder = null; if(convertView == null){ convertView = mInflater.inflate(R.layout.xxx null); holder = ne...

2014-05-28 16:11:58 291 1

转载 安卓开发者必备的六个工具

作者Rex St.John不仅是UX-RX.com的创始人,还是AirPair里的安卓专家。作为一名手机软件高级工程师,他曾为世界500强的公司开发了一些企业级手机和平板应用。他开发的一个应用有数百万人使用。下面是安卓开发者必备的六个工具:No1.Genymotion每个对安卓模拟器熟悉的人都知道,启动模拟器再运行应用是一个多么漫长而乏味的过程。Genymotion通过提供一个超级快速

2014-03-14 16:54:07 443

转载 分析各种Android设备屏幕分辨率与适配 - 使用大量真实安卓设备采集真实数据统计

主要是为了总结一下 对这些概念有个直观的认识;.作者 : **万境绝尘 **转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19899193.一. 数据采集源码GitHub地址 :-- SSH : git@github.com:han1202012/DisplayTest.

2014-03-08 17:48:37 560

转载 Android 屏幕适配

让应用自动适配多个分辨率的屏幕,是每个android程序员的基本功,就好像前端工程师熟练编写CSS Hack一样。适配工作中一个重要的工作就是对页面的调整。对于页面的适配,有很多的方法和技巧。比如布局中尽量使用wrapcontent ,fillparent,尽量避免具体的数字,由系统来计算合适的宽高;或者为每个分辨率写一套布局文件,设置对应分辨率下控件的宽高;为每一个分辨率写一套布

2014-03-08 17:41:19 367

转载 Android demo倒计时原理(CountDownTimer原理)

项目中用绑定手机号功能,发送之后2分钟倒计时。倒计时的功能用到了CountDownTimer类,这是android的一个工具类。很巧妙下面是这个类的原理解析,此类比较简单。但很强大。 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031

2014-03-08 17:39:04 419

转载 Android 程序获取、设置铃声、音量、静音、扬声器

Android 程序获取、设置铃声和音量 通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单! AudioManagermAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); //通话音量 int max = mAudioManager.getStream

2014-03-08 08:59:53 492

转载 Android中使用gzip传递数据

HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来减少文件大小,减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。作者在写这篇博客时经过测试,4.4MB的文本数据经过Gzip传输到客户端之后变为392KB,压缩效率极高。一.服务端服务端有2种方式去压缩,一种可以自己压缩,但是更推

2014-01-24 10:18:34 386

转载 intent.setFlags方法中的参数值含义

一. intent.setFlags()方法中的参数值含义:1.FLAG_ACTIVITY_CLEAR_TOP:例如现在的栈情况为:A B C D 。D此时通过intent跳转到B,如果这个intent添加FLAG_ACTIVITY_CLEAR_TOP标记,则栈情况变为:A B。如果没有添加这个标记,则栈情况将会变成:A B C D B。也就是说,如果添加了FLAG_ACTIVITY_CLEA

2014-01-11 10:13:54 401

原创 Git学习记录

转自:http://www.liaoxuefeng.com/在Windows上安装Git实话实说,Windows是最烂的开发平台,如果不是开发Windows游戏或者在IE里调试页面,一般不推荐用Windows。不过,既然已经上了微软的贼船,也是有办法安装Git的。Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwi

2013-12-05 18:06:07 379

转载 Android view中的requestLayout和invalidate方法

roid view中的requestLayout和invalidate方法1.requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调

2013-11-28 15:17:47 363

转载 android4.2 动态显示/隐藏导航栏

转自:http://blog.csdn.net/tianxianbaobao1983/article/details/9424309原生android4.2 的导航栏是状态栏应用【SystemUI】的一部分,其显示/隐藏是通过配置选项【config_showNavigationBar】在PhoneWindowManager初始化时固定配置好的。一旦系统启动后,确认加载导航栏,运

2013-11-25 10:24:51 1557 1

转载 Task和Activity相关 史上最全的setFlag介绍

android:allowTaskReparenting    用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。    如果这个特性没有被设定,设定到元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为

2013-11-18 09:40:38 540

原创 学习android内核 --View工作原理相关

View系统定义了从用户输入消息到消息处理的全过程。消息处理过程:1.用户触摸屏幕的消息或键盘消息等输入设置产生消息-〉转换成系统统一处理的消息值 -> 再分发到各窗口系统(由WmS判断用户正在与哪个窗口交互)。2.因为窗口都是由WmS创建的,所以其知所有窗口的信息,比如大小,位置等。3.如果是按键消息:则直接发送给当前窗口。4.如果是触摸消息:

2013-10-25 09:53:08 374

原创 学习android内核 -- 程序包管理(PackageManagerService)

PackageManagerService主要包括三部分内容:1.提供一个能够根据Intent匹配到具体的Activity、Provider、Service。即能把参数中指定的intent转换成一个具体的包含了程序包名及具体Component名称的信息。2.权限检查,即当调用某个需要一定权限的函数时,判断是否有执行权限,从而保证了系统安全。3.提供安装、删除应用程序接口。

2013-10-17 09:22:13 391

原创 学习android内核 -- 系统启动相关

参考自:《Android系统进程Zygote启动过程的源代码分析》 http://blog.csdn.net/luoshengyang/article/details/6768304 1.Android系统是基于Linux内核的,而在Linux系统中,所有的进程都是init进程的子孙进程,也就是说,所有的进程都是直接或者间接地由init进程fork出来的。Zygote进程也不例外,它是

2013-10-16 09:18:49 411

转载 4.2 Keyguard 流程分析

转自:http://www.cnblogs.com/haiming/p/2989678.html前面对于MediaPlayer的系统研究,刚刚开始,由于其他原因现在要先暂停一下。这次要看的模块是android 4.2 系统中的Keyguard模块。在接触之后才发现,android4.2的keyguard模块与之前相比,变化挺大的,最起码名字上变化挺大的。由于对于Android系统了解不

2013-09-13 11:34:44 1419 1

转载 4.2锁屏流程分析

前面对于MediaPlayer的系统研究,刚刚开始,由于其他原因现在要先暂停一下。这次要看的模块是android 4.2 系统中的Keyguard模块。在接触之后才发现,android4.2的keyguard模块与之前相比,变化挺大的,最起码名字上变化挺大的。由于对于Android系统了解不是很深入,而且知识和经验都比较弱,在文中肯定有不恰当或者错误的地方,请各位路过的大神不吝指正。  在An

2013-09-13 10:48:05 66

转载 Android中使用系统桌面背景作为应用背景,支持拖动

转自:http://blog.csdn.net/yao_guet/article/details/6572739在Android应用开发中,使用系统桌面背景作为应用的背景,需要把应用的背景设置为透明背景,然后设置窗口的属性为FLAG_SHOW_WALLPAPER即可显示背景。修改AndroidManifest.xml文件里面activity属性:   

2013-09-11 09:54:49 292

转载 完整版linux下android源码下载、编译、模拟器启动运行(附源码目录结构说明)

转自:http://blog.csdn.net/xdhywj/article/details/8608243一、环境说明:1、VMware版本:8.0.3 build-7030572、liunx系统:Ubuntu10.103、jdk:sun-java6-jdk二、Ubuntu 10.10更新源列表      由于Ubuntu

2013-09-10 09:01:41 1002

原创 学习android内核 -- 内存管理相关

Android内存管理:1.当应用程序关闭以后,后台对应的进程并没有真正的退出(处于休眠状态,一般不占用系统CPU的资源),这是为了下次再启动的时候能快速启动。2.当系统内存不够时,AmS会主动根据一定的优先规则退出优先级较低的进程。a:潜规则:回收优先级为           前台Activity b:与linux内核的内存管理模块配合: 系统内存主要是Linux内核的内存管理所

2013-09-09 14:03:00 947

转载 java与(&,&&)和或(|,||)的区别

1.与(&,&&)和或(|,||)的区别 1.1使用与操作的时候,要求前后几个表达式的内容都是true,最终结果才是true,如果有一个是false,则最终结果就是false;   1.2使用或操作的时候,要求前后几个表达式只要有一个true,则最终结果就是true,如果全都是false,则最终结果才是false; 2.与(&)和短路与(&&)的区别以及或(|)和短路或(||)的区

2013-09-07 17:14:35 910

转载 Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。 1.与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class

2013-09-07 17:06:42 324

原创 学习android内核 -- AmS相关内容记录

ActivityManagerService.java (下面简称AmS),WindowManagerService.java,View.java 这三大类被称为Android 内核的三大核心功能。AmS主要功能:1.统一调度各应用程序的Activity。2.内存管理。(Activity的回收)3.进程管理。(向外提供了查询系统正在运行的进程信息的API)

2013-09-07 14:10:57 508

原创 学习android内核 -- android 4.0 系统锁屏

LockScreen分类; 一、无锁屏; 二、锁屏: 1、UnLockScreen: 图案锁、 PIN锁, 密码锁; 2、LockScreen: 波纹锁;

2013-09-05 08:48:07 1210

原创 学习android内核 -- Context相关

参考自:《Android内核剖析》一书 一个Context意味着一个场景一个容器,就是可以放一些我们想放的一些东西,如activity,service,等 一个activity就有一个context,一个service也有一个context,有多少个就有多少个context所以一个应用程序中的context对象数=1+activity个数+service个数;  1代表是app

2013-09-04 09:29:37 444

原创 学习android内核 -- Activity启动过程

首先我们最常见的activity都是最终继承自Context,很多的实现并不是完全在acitivty.java中实现的。 比如我们常见的启动一个activity-〉startActivity()就是在Context中定义,并由ContextImpl类实现(这个怎么关联到activity中还没搞明白)。 ContextImpl: @Override public void s

2013-09-03 15:08:24 436

原创 学习android内核--相关流程以及相关类作用记录

ActivityThread ActivityService ActivityServiceNative ActivityManagerService ServiceManager:管理各种系统服务。本身也是一个service,可以通过BinderInternal,getContextObject()获取该对象Binder引用,从而通过该引用再去获取其它servic

2013-09-03 10:51:39 402

原创 学习android内核-Binder笔记

参考自:http://blog.csdn.net/ylyuanlu/article/details/6638825参考自:一书  1.Binder工作在Linux层面,属于一个驱动,但这个驱动不需要硬件,仅是基于一小段内存。从线程的角度讲,Binder驱动代码运行在内核态,客户端程序调用Binder是通过系统调用完成。2.Binder是一种架构,主要提供了(服务器端接口,Bin

2013-09-03 10:41:09 469

转载 区分Activity的四种加载模式

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。加载模式分类及在哪里配置Activity有四种加载模式:standardsingleTopsingleTasks

2013-08-30 15:03:00 298

转载 [项目管理] 项目管理之配置管理

目录(?)[-]一什么是配置管理二配置管理的基本要求三配置项四基线五配置库六配置管理工具一、什么是配置管理软件配置管理是对软件修改进行标识、组织和控制的技术,用来协调和控制整个过程。是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的主要目标是,建立和维护产品的完整性,有效跟踪和控制配置项的变更,确保项目可以回溯到过

2013-07-16 14:46:00 384

转载 [Android] Android开发优化之——对界面UI的优化(3)

本篇博文主要讨论一下复杂界面中常用的一种技术——界面延迟加载技术。 有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一个导入好友的布局界面。从需求的角度来说,这个导入功能,一般情况下用户是不使用

2013-07-16 14:38:48 302

转载 [Android] Android开发优化之——对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候

2013-07-16 14:35:46 514

转载 [Android] Android开发优化之——对界面UI的优化(1)

在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分

2013-07-16 14:30:04 309

gridview显示

gridview显示

2012-07-17

空空如也

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

TA关注的人

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