Android技术初探
文章平均质量分 88
山代王
Android移动开发、iOS开发、JavaWeb、PHP、HTML5
展开
-
【深入理解Java虚拟机】Java内存区域模型、对象创建过程、常见OOM
本文内容来源于《深入理解Java虚拟机》一书,非常推荐大家去看一下这本书。最近开始看这本书,打算再开一个相关系列,来总结一下这本书中的重要知识点。呃呃呃,说好的那个图片请求框架呢~ 不要急哈,因为这个请求框架设计的内容还是比较广的,目前业余时间正在编写当中,弄好了之后就会放上来。在完成之前,咱还是先来学习一下其他知识。1、内存模型java虚拟机在执行java程序的过程中会把它说管理的内存划分为若原创 2016-06-22 10:34:46 · 7596 阅读 · 5 评论 -
Android WebView的Js对象注入漏洞解决方案
最近在做一个项目过程中,发现了一个很严重的安全漏洞,这个漏洞是乌云平台(http://www.wooyun.org)报告出来的。1,使用场景我们很多时候要使用WebView来展示一个网页,现在很多应用为了做到服务端可控,很多结果页都是网页的,而不是本地实现,这样做有很多好处,比如界面的改变不需要重新发布新版本,直接在Server端修改就行了。用网页来展示界面,通常情况下都或多或少都转载 2016-04-04 11:38:19 · 1313 阅读 · 0 评论 -
实用代码片段(一)
一、保存和恢复ListView的当前位置private void saveCurrentPosition()二、组拼集合中的数据成字符串,并删除最后一个分隔符原创 2015-12-01 17:38:02 · 1007 阅读 · 0 评论 -
Android自定义属性,format详解
1. reference:参考某一资源ID。 (1)属性定义: background" format = "reference" /> (2)属性使用: android:layout转载 2016-01-20 20:41:19 · 1476 阅读 · 0 评论 -
【Android开发经验】APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
只要是需要进行联网获取数据的APP,那么不管是版本更新,还是图片缓存,都会在本地产生缓存文件。那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢?今天这篇文章就是主要来说明这个问题的。 首先,我们要知道,在Android手机里面,缓存的位置分为两类,一类是Internal Storage,即内部存储,另外一类是External S转载 2016-01-20 10:31:27 · 27274 阅读 · 9 评论 -
Android 漂亮的UI控件
里面很多实用、漂亮的UI控件https://github.com/wasabeef/awesome-android-ui转载 2016-01-20 09:55:30 · 5585 阅读 · 2 评论 -
Android绘制时钟
最近在学View相关的知识,对Canvas和Paint类有了初步了解,看到别人弄了一个会走动的时钟,自己也打算给弄上一个,算是巩固一下相关知识。首先来分析一下,要绘制出一个时钟,要绘制哪几部分:时钟的大圆、圆上的刻度线、圆外的数字、圆中心处的圆点以及三个时钟指针。既然明白了要绘制的东西,下面只需要想办法来实现即可。(1)绘制时钟的大圆这个最简单,只要确定好圆原创 2016-01-19 16:26:20 · 7510 阅读 · 4 评论 -
极光推送JPush客户端与服务器端的集成
一、应用场景 有些情况下,我们项目的服务器端需要“自己”拥有推送消息到手机客户端的能力,比如,一些商家端的APP应用,当用户下单后,我们的后台系统需要即时的通知到商家APP端,这就要求我们的后台系统拥有推送功能。最经济便捷的一种方式就是服务器端集成一套第三方的推送方案。说到第三方的推送平台,极光推送就是不错的选择。 二、推送流程 在我们服务器端集原创 2015-12-11 17:48:52 · 15092 阅读 · 4 评论 -
几种单例模式的使用及比较
单例的使用一般分为三步: /** * 通过单例实现获取本类(AudioManager)对象 */ private static AudioManager mInstance; //第一步:一个私有静态的类成员变量 private AudioManager() {} //第二步:一个私有的构造方法 public static AudioManager getInstance(原创 2015-05-25 17:41:49 · 2142 阅读 · 0 评论 -
Android桌面组件widget与快捷方式shortcut
一、桌面组件widget1、新建一个Android工程,命名为WidgetDemo2、建立widget布局文件在res / layout下新建一个widget.xml布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation原创 2012-12-18 16:58:09 · 8287 阅读 · 1 评论 -
android抽屉SlidingDrawer——wrap_content非全屏
本文地址:http://blog.csdn.net/you_and_me12/article/details/7327030SlidingDrawer的用法比较多,就不说明了。如果设置了属性layout_height="wrap_content"是不起作用的,在原来的SlidingDrawer中的onMeasure()方法使得layout_height一直都是fill_pare转载 2012-11-13 20:37:58 · 3444 阅读 · 0 评论 -
Android自定义View或ViewGroup的流程
对于onMeasure()方法-->不论是View还是ViewGroup,onMeasure方法其实都是在测量自身的宽和高,只是对于ViewGroup来讲,当该ViewGroup的父容器为其设置的计算模式不是MeasureSpec.EXACTLY时(即自己设置的是wrap_content),该ViewGroup没法直接测量出自身宽和高,必须要让它的子View自己先去测量自己,也就是为啥此时需要在onMeasure中调用measureChildren()了,当调用了measureChildren后子View的原创 2016-04-07 21:09:19 · 4273 阅读 · 0 评论 -
自定义ViewGroup--浮动标签的实现
前面在学习鸿洋大神的一些自定义的View文章,看到了自定义ViewGroup实现浮动标签,初步看了下他的思路以及结合自己的思路完成了自己的浮动标签的自定义ViewGroup。目前实现的可以动态添加标签、可点击。效果图如下:1、思路首先在onMeasure方法中测量ViewGroup的宽和高,重点是处理当我们自定义的ViewGroup设置为wrap_content的情况下,如原创 2016-04-08 11:21:20 · 3346 阅读 · 4 评论 -
Android异步任务AsyncTask的使用与原理分析
在上一篇文章《Android缓存机制&一个缓存框架推荐》中说到,在了解了Android缓存机制后我准备自己动手写一个LruCache和DiskLruCache二级缓存的轻量级的图片请求框架,在思考如何搭建这个框架时,纠结于用何种方式去下载图片,是直接new出一个线程呢,还是用看起来稍微高大上档次一点的AsyncTask异步任务来处理?思来想去,还是虚荣心作怪,还是用AsyncTask吧,正好这个工原创 2016-06-21 07:46:14 · 13684 阅读 · 3 评论 -
Android缓存机制&一个缓存框架推荐
1、先推荐一个轻量级缓存框架——ACache(ASimpleCache)ACache介绍:ACache类似于SharedPreferences,但是比SharedPreferences功能更加强大,SharedPreferences只能保存一些基本数据类型、Serializable、Bundle等数据,而Acache可以缓存如下数据:普通的字符串、JsonObject、JsonAr原创 2016-06-17 07:53:12 · 61584 阅读 · 10 评论 -
Android实现滑动的几种方法
下面通过一个例子来总结实现滑动的几种方式,例子的主要功能就是让我们的自定义View能够随着手指的移动而移动。布局文件如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width原创 2016-06-13 15:17:17 · 17048 阅读 · 5 评论 -
Android自定义View——自由定制优惠券背景
1、功能介绍现在购物类的APP真的是数不甚数啊,经常可以在这些APP中看到优惠券的影子,今天我们就来实现一下优惠券的背景效果。实际开发中,如果我们想偷懒,直接用一张背景图作为优惠劵背景就OK了,今天我们手动来实现一下,其实实现起来还是比较简单的。效果图如下:边缘的样式可以自由定制,有两种边缘类型:半圆形和三角形。上面图中第一张左右两边边缘为三角形、上下边缘为半圆形,第二张左右两本是半圆形、上下两边原创 2016-07-11 08:00:33 · 14291 阅读 · 20 评论 -
【Android面试要点系列一】
1、广播的两种注册方法,有什么区别广播接受者BroadcastReceiver通过注册自己感兴趣的广播意图,当有该广播发出时,我们自定义的BroadcastReceiver就能够接收到该广播,进行我们自己的逻辑处理。一个简单的自定义BroadcastReceiver如下:public class BroadcastReceiverTest extends BroadcastReceiv原创 2016-06-12 20:39:32 · 6268 阅读 · 2 评论 -
Android Scroller大揭秘
本文内容有:(1)scrollTo()、scrollBy()的讲解;(2)Scroller类的讲解。在学习使用Scroller之前,需要明白scrollTo()、scrollBy()方法。一、View的scrollTo()、scrollBy()scrollTo、scrollBy方法是View中的,因此任何的View都可以通过这两种方法进行移动。首先要明白的是,scrollTo、scrollBy滑动的是View中的内容(而且还是整体滑动),而不是View本身。我们的滑动控件如SrollVi原创 2016-06-06 07:48:20 · 10223 阅读 · 7 评论 -
Service要点全解析
1、Service概述Service的主要作用是,让系统可以在后台干一些不与用户交互的操作,这些操作可能会比较耗时,比如去下载一些网络资源等;也可能是一项长期运行的工作,比如说监听电话来电、播放音乐等。初听起来,Service与线程Thread很像,但Service和Thread完全是两个不同的东西啊。(1)Service不是运行在一个独立的进程中,它和我们的应用程序在同一个进程中原创 2016-05-20 17:51:51 · 8514 阅读 · 4 评论 -
Activity与Fragment易混点归纳
Android开发中Activity和Fragment是非常重要的两个知识点,这里我们就分别归纳一下,在使用Activity和Fragment时需要注意的一些事项,特别是对于Fragment,在对其进行管理时我们要选择好的一些方式。一、Activity要点Activity负责展示UI给用户,负责和用户的交互操作。本部分主要对Activity的生命周期、如何保存状态信息、如何讲一个A原创 2016-05-19 09:00:10 · 16260 阅读 · 12 评论 -
这些小工具让你的Android 开发更高效
在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效。VysorVysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用。Vector AssetAn转载 2016-04-10 09:32:24 · 2249 阅读 · 0 评论 -
Android事件分发机制总结
理解事件的分发机制,需要对View和ViewGroup事件的分发分别探讨。View和ViewGroup的区别,一个View控件是指它里面不能再包含子控件了,常见的如TextView、Button、ImageView等,而ViewGroup是继承自View的,但是它里面可以包含一些子控件,包括View或者嵌套的ViewGroup,常用的大部分布局都是ViewGroup组件,如LinearLayout原创 2016-03-27 20:59:29 · 2609 阅读 · 2 评论 -
Android中让应用程序自动安装到手机内存及判断应用程序是否安装在SDCard中
上次写了个widget程序,安装好后准备把它添加到手机主页上,发现窗口小部件中找不到我刚刚安装的那个widget,网上查资料才发现系统窗口小部件只能先加载扫描安装在内存的应用程序,把属于widget的APP显示到小部件列表上。对于开发者来说,怎样才能让应用程序自动安装到手机内存中去呢?在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: android原创 2012-11-11 14:13:45 · 7740 阅读 · 0 评论 -
android Handler的使用(一)
Handler的使用(一) Handler基本概念: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理。这种机制通常用来处理相对耗时比较长的操作。 使用一个例子简单的来介绍一下Handler。 示例1:一个应用程序中转载 2012-11-05 14:02:27 · 1969 阅读 · 0 评论 -
Android中的Selector的用法
Android中的Selector主要是用来改变ListView和Button控件的默认背景。其使用方法可以按一下步骤来设计:(以在mylist_view.xml为例)1.创建mylist_view.xml文件首先在res目录下新建drawable文件夹,再在新建的drawable文件夹中新建mylist_view.xml,其目录结构为:res/drawable/myl原创 2012-07-26 12:15:10 · 224744 阅读 · 28 评论 -
android:layout_gravity和android:gravity的区别
1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左原创 2012-08-08 15:53:04 · 179687 阅读 · 27 评论 -
Android中用GridView实现九宫格的两种方法
1.传统办法:实现一个继承BaseAdapter的 ImageAdapterjava代码如下:package com.test;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;原创 2012-07-20 18:18:19 · 20310 阅读 · 5 评论 -
Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)
在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏。要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置。1.在xml文件中进行配置在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。实现全屏效果:android:theme="@android:style/原创 2012-07-24 11:48:02 · 56074 阅读 · 1 评论 -
android 9patch
1:介绍参考 :http://blog.sina.com.cn/s/blog_5033827f0100r4dm.htmlNinePatch图片以*.9.png结尾,和普通图片的区别是四周多了一个边框(如下图所示): 如上图所示,左边那条黑色线代表图片垂直拉伸的区域,上边的那条黑色线代表转载 2012-08-07 21:28:28 · 2932 阅读 · 0 评论 -
如何在Android中使用OpenCV
看了网上的很多教程和官方http://opencv.willowgarage.com/wiki/Android提供的如何在Android上使用OpenCV的教程,照着一步一步的做最后总有些问题,不是APK安装失败就是运行时突然报错退出。和同学一起摸索了一段时间后,终于弄成功,在这里做一个总结。最关键的问题是项目中各个文件夹和文件的位置要放置正确,而且目标机器的CPU架构要设置正确,下面是配置的详细转载 2012-07-13 11:54:55 · 2011 阅读 · 0 评论 -
Android中文语音合成(TTS)各家引擎对比
Android系统从1.6版本开始就支持TTS(Text-To-Speech),也就是我们所说的语音合成,不过遗憾的是系统默认的TTS引擎:Pico TTS,并不支持中文。由此对于广大的炎黄子孙不得不安装我们自己的TTS引擎跟语言包,由此而拉开本文的篇章。随着IPhone4S Siri的推出,让语音识别与语音合成TTS火了一把,同时也给国内的两家公司:科大讯飞和捷声华通转载 2012-08-03 11:15:57 · 5157 阅读 · 0 评论 -
Android动画开发——Animation动画效果
Android动画开发——Animation动画效果动画类型Android的animation由四种类型组成XML中 alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate转载 2012-04-23 21:12:15 · 1854 阅读 · 0 评论 -
android 来电自动接听和自动挂断
转自:http://stephen830.iteye.com/blog/1181786//-----------------------------------------------------------------------------------------------------------------------------------//an转载 2012-04-15 22:42:31 · 6714 阅读 · 2 评论 -
利用JAVA反射机制实现调用私有方法
转自 :http://blog.csdn.net/yangtaoJ2me/article/details/5752491//------------------------------------------------------------------------------------------------------------------------------------转载 2012-04-15 21:49:22 · 2338 阅读 · 0 评论 -
android 获取手机信息
Android之TelephonyManager类的方法详解 TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。 TelephonyManager类的对象可以通过Context.getSystemSe转载 2012-04-25 20:35:39 · 6634 阅读 · 0 评论 -
App列表之圆角ListView
有些东西看多了,就厌烦了:extjs对我这种感觉最为强烈。甚至,有时觉得设计之殇是审美疲劳。直角看多了,就想看看圆角,不知何时,这几年刮起了一阵阵的圆角设计风:CSS新标准纳入圆角元素,iphone中几乎随处可见圆角设计,也开始出现很多圆角名片了...今天我们就实现一个圆角的ListView效果。圆角的设计,我们并不追求到处都用,无处不用,android中有少数界面用直角确实容易显得锋转载 2012-08-11 22:16:58 · 3340 阅读 · 0 评论 -
App列表之圆角ListView(续)
本来这篇文章想并到上篇Android学习系列(16)--App列表之圆角ListView中的,但是若是如此就让大家错过一篇新的好的文章,着实可惜。上篇中我们使用shape,corners,gradient实现了一个渐变的圆角效果,但是在完文之后的实践中,我发现有时效果不甚满意,选中和放手的事件监听没有去正确的判断,然后渐变效果也比较单一,性能也觉得不是很快,不如用图片来的惊艳和迅速,又转载 2012-08-11 22:19:37 · 3515 阅读 · 0 评论 -
短信拦截,如何抢先于QQ通讯录,360
最近写一个应用(A),需要拦截短信分析。一般是这样实现的:注册一个接受短信Intent-Filter,获取短信广播,分析短信内容然后相应处理。对特定短信终止广播继续(abort方法),阻止其进入收件箱。大致就是这么一个过程。但上述方式,在QQ通讯录/360/飞信存在的情况下,拦截短信失败~也就是说它们抢先拿到了收短信的广播,并将其中断了。那么如何解决这个问题呢~转载 2012-09-02 11:47:48 · 1840 阅读 · 0 评论 -
Android应用开发完全退出程序的通用方法!!!
大家好,好久不见了,我们在开发一个android应用时,有可能有N个Activity,而在每个Activity里的菜单里有个"退出程序"菜单,这里就要完全退出程序了,所以今天给大家分享的是Android应用开发完全退出程序的通用方法,以前我在网上收了几种方法,但都不能通用,比如:任务管理器方法(ActivityManager):首先要说明该方法运行在Android 1.5 - 2.1 才可转载 2012-09-02 10:58:17 · 1489 阅读 · 0 评论