Android
文章平均质量分 76
小刚lz
这个作者很懒,什么都没留下…
展开
-
Android学习 - 小知识(sqlite与ViewPager和ViewFilpper简介)
sqlite 1、除非SQLite运行在“auto_vacuum=FULL”模式,否则当从数据库文件中删除大量数据之后,就会留下很多空白空间,或者“空闲”的数据库页。这意味着数据库文件的大小会比(它所存储的数据)实际需要的(空间)更大。运行VACUUM命令将会重新构建数据库文件,回收空白空间,减小数据库文件的大小。myDatabase.execSQL("VACUUM");2、使用S原创 2015-04-26 22:51:54 · 794 阅读 · 0 评论 -
Android学习 - Navigation Drawer
NavigationDrawer是Android团对在2013 google IO大会期间更新的Support库(V13)中新加入的重要的功能。实现Navigation Drawer需要使用最新支持库(V13)的DrawerLayout。Navigation Drawer的设计指南请参考。Navigation Drawer是从屏幕的左侧滑出,显示应用导航的视图。官方是这样定义的:The n转载 2015-05-13 10:18:56 · 900 阅读 · 0 评论 -
Android学习 - AppCompat实现Action Bar
每一位Android开发者对Action Bar这种设计都不陌生了,毕竟它已经发布了至少两年了。Android团队发布ActionBar设计规范时同时放出了ActionBar的Api来支持这种设计。ActionBar的API被添加在Android3.0(API级别11)中,低版本的还是用不了,根本不能适配支持Android 2.X系列的应用。很幸运有第三方开源的actionbarsherlock支转载 2015-05-13 21:21:34 · 595 阅读 · 0 评论 -
Android学习 - Android新的menu实现ActionMode
Android的menu有多种实现方式,这里介绍一种新的menu实现方式:ActionMode。ActionMode是Android 3.0以后出现的,我们可以使用AppCompat库使ActionMode兼容至Android 2.1。Android3.0以前,我们处理列表的长按事件经常使用Context Menu,Android3.0以后,我们有了新的选择:ActionMode。下图左边效果转载 2015-05-13 21:25:14 · 489 阅读 · 0 评论 -
Android学习 - Android Socket使用浅析
套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。针对一个特定的连接,每台机器上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”。JAVA有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听”进入的连接;Socket,客户端用它初始一次连接。侦听套接字只能接收新的连接请求,不能接收实际的数据包。套接字是基于TCP/IP实现的,它是用来原创 2015-05-13 21:34:37 · 1391 阅读 · 0 评论 -
Android学习 - android Fragments简析
概述Fragment表现Activity中用UI的一个行为或者一部分。可以组合多个fragment放在一个单独的activity中来创建一个多界面区域的UI,并可以在多个activity里重用某一个fragment。把fragment想象成一个activity的模块化区域,有它自己的生命周期,接收属于它的输入事件,并且可以在activity运行期间添加和删除。Fragment必须总是被嵌入原创 2015-05-13 21:49:49 · 558 阅读 · 0 评论 -
Android学习 - 自定义输入法
输入法的例子和源代码看了不少时间了,看得头很晕,很郁闷。静下心来把整个代码想了一遍,其实大部分代码都在处理绘制界面,以及事件的处理,核心代码很少,都被底层封装得很完美了。先看看一般输入法的界面:分为两个部分,上部分是候选窗口(CandidateView),用来显示候选词,现在常用的输入法都有这个功能,如在搜狗、google输入法中输入abc,输入框中就会显示很多相关联的中文词。下部分就原创 2015-05-15 14:57:40 · 4591 阅读 · 1 评论 -
Android学习 - Android应用如何支持屏幕多尺寸多分辨率问题
作为Android应用程序开发者都知道android是一个“碎片化”的世界。多种系统版本、多种尺寸、多种分辨率、多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错。这给开发适配带来不小的难度。这篇文章会告诉我们怎么解决这个问题。1、Android碎片化1、android系统版本Android更新较大的版本如下:上面只有当前可用版本,Android转载 2015-05-20 21:22:59 · 570 阅读 · 0 评论 -
Android学习 - Android图片变换处理
Matrix图片变换主要讲解一下如何处理对一个Bitmap对象进行处理,包括:缩放、旋转、位移、倾斜等。在最后将以一个简单的Demo来演示图片特效的变换。Matrix对于一个图片变换的处理,需要Matrix类的支持,它位于"android.graphics.Matrix"包下,是Android提供的一个矩阵工具类,它本身不能对图像或View进行变换,但它可与其他API结合来控制图形、V原创 2015-05-20 21:40:11 · 945 阅读 · 0 评论 -
Android学习 - 圆形ImageView
先看下效果图:public class RoundedImageView extends ImageView { private int borderThickness; private int borderColor; private Bitmap image; private Context context; private int width = 0; private原创 2015-05-20 21:45:48 · 696 阅读 · 0 评论 -
Android学习 - Aidl的使用
很多网友来函表示对Android AIDL不是很理解,这里准备了一个简单的例子,帮助大家了解Android上比较强大的远程服务设计吧。一、为什么要使用AIDL,他的优势有哪些呢?AIDL服务更像是一个Server,可以为多个应用提供服务。由于使用了IDL这样类似COM组件或者说中间语言的设计,可以让后续的开发者无需了解内部,根据暴漏的接口实现相关的操作,AIDL可以工作在独立的进程中。原创 2015-05-11 22:31:35 · 485 阅读 · 0 评论 -
Android学习 - 小知识(读取一个已经安装的包的权限与两个Activity跳转的时,如何自定义翻页效果)
两个Activity跳转的时,如何自定义翻页效果两个Activity跳转的时候,自定义翻页效果:Intent intent = new Intent(FirstActivity.this, SecondActivity.class);startActivityForResult(intent, 11);// 添加界面切换效果,注意只有Android的2.0(SdkVersion版本原创 2015-05-11 20:33:53 · 541 阅读 · 0 评论 -
Android学习 - Android权限机制总结与常见权限不足问题分析
Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制,很多像我这样的新手,尤其是习惯了windows低安全限制的用户,很容易在这方面弄混淆,下面是我总结的Android系统权限相关的内容,作为这段时间对android权限学习的总结,也希望能对大家有所帮助,不正确之处请指出。首先分清两个概念:要区分apk运行时的拥有的权限与在文件系统上转载 2015-05-11 20:12:06 · 627 阅读 · 0 评论 -
Android学习 - android.intent.action.MAIN与android.intent.category.LAUNCHER理解
先看看网路上的说法:android.intent.action.MAIN决定应用程序最先启动的Activityandroid.intent.category.LAUNCHER决定应用程序是否显示在程序列表里通过实验后,发现MAIN与LAUNCHER并不是单纯的各管各的事情;我测试的结果是,如果一个应用没有LAUNCHER则该apk仍能安装到设备上,但是在桌面中图标中看不到。如果给那个A原创 2015-04-25 22:13:51 · 4596 阅读 · 0 评论 -
Android提高 - 图片一些常用处理方法
1、图片加载方法,方便用户加载图片。这里需要提下,在获取图片的时候尽量使用写入流的方式获取图片,具体原因以后会介绍。/*** * 加载本地图片 * * @param context * :主运行函数实例 * @param bitAdress * :图片地址,一般指向R下的drawable目录 * @return */public fi原创 2015-04-29 20:09:11 · 462 阅读 · 0 评论 -
Android提高 - 浮动搜索框
浮动搜索框(SearchManager)的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UI。SearchManager具体使用步骤如下:(1)配置search bar的相关信息,新建一个位于res/xml下的一个searchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。<searchable转载 2015-04-29 20:40:10 · 747 阅读 · 0 评论 -
Android学习 - 自定义锁屏demo之滑动解锁
1、有两种方式实现滑动解锁,一种是在ACTION_MOVE事件发生时不断重绘制需要滑动的按钮,重绘的x坐标为当前ACTION_MOVE事件的x坐标。这种方式下,如果接收ACTION_MOVE事件的viewgroup中有子view跟需要滑动的按钮位置重叠,则会遮挡住按钮。一种方式是使用view的scrollto方法,把需要滑动的按钮所在view跟随ACTION_MOVE事件一起移动。2、响应原创 2015-04-25 21:57:15 · 2883 阅读 · 0 评论 -
Android学习 - Android中View绘制流程
1、UI框架基本概念:Activity:基本的页面单元,Activity包含一个Window,window上可以绘制各种view;View:最基本的UI组件,表示屏幕上的一个矩形区域;Window:表示顶层窗口,管理界面的显示和事件的响应;每个Activity均会创建一个PhoneWindow对象,是Activity和整个View系统交互的接口。PhoneWindow:该类继承于W原创 2015-04-23 21:44:47 · 553 阅读 · 0 评论 -
Android提高 - Activity切换动画效果xml
Activity的动画效果在/android/frameworks/base/core/res/res/values下的stlyes.xml、themes.xml两个文件中有定义。但是有时这些效果未必能满足你的要求,需要自己定义styles.xml来实现这个功能。Activity去掉默认的动画效果方法:1、重写Activity的Them中的windowAnimationStyle相关属性,原创 2015-04-29 20:55:18 · 608 阅读 · 0 评论 -
Android学习 - Android断点续传核心代码
在网络应用特别是游戏中很多地方使用了下载的技术,下载过程中很有可能因为各种问题而是下载中断,如果重新下载会很吃力,当然如果你下载的东东很小那就另说了。断电续传就是中断后继续传送数据,关键代码如下:/** * 断点续传 * * @param url */private void duanDianXuChuan(final String url) { try { Runnabl转载 2015-05-10 20:00:35 · 403 阅读 · 0 评论 -
Android提高 - Android如何使用隐藏API
一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在,这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。最好还是不要使用隐藏的API。不过有时为了实现Android应用某些特殊的功能或者效果,隐藏的API往往能发挥意转载 2015-04-28 11:32:27 · 414 阅读 · 0 评论 -
Android提高 - Android 数字签名学习
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字转载 2015-04-28 12:38:42 · 1004 阅读 · 0 评论 -
Androi小知识 - Android抽象布局include、merge、ViewStub
在布局优化中,Android的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientatio原创 2015-05-27 22:09:01 · 609 阅读 · 0 评论 -
Android小知识 - 获取Android手机中SD卡内存信息
SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android开发中,我们如何能获取SD卡的内存容量呢?首先,要获取SD卡上面的信息,必须先对SD卡有访问的权限,因此第一件事就是需要添加访问扩展设备的权限。其次,需要判断手机上面SD卡是否插好,如果有原创 2015-05-27 22:15:19 · 676 阅读 · 0 评论 -
Android学习 - Android优化浅析
Android优化来说有很多方面,比如listView等。但是单纯来说Android本身系统就提供了很多优化,所以这里讲优化其实有点没有必要。总体来说这里所说的优化其实是程序员平时所犯的简单错误,也就是说这里所说的优化是想让程序员拥有一个良好的代码风格,尽量避免因为代码错误而产生的多余消耗。优化的核心原则不做不必要的事,不分配不必要的内存1、字符串频繁操作时,多用StringBuffe原创 2015-06-04 10:06:32 · 516 阅读 · 0 评论 -
Android学习 - 触摸及手势操作
GestureDetector简介触摸屏为我们操作无键盘、无鼠标的手机系统带来了很多的便利。当用户触摸屏幕时会产生很多的触摸事件,down、up、move等等。View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,如下:public class MainActiv原创 2015-06-03 13:59:44 · 1065 阅读 · 0 评论 -
Android学习 - 使用及实现系统分享接口
为了应用的推广、传播,很多的应用中都有“分享”功能,一个按钮,点击后会出现短信、微博等等。一切实现了分享功能的应用列表。这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己应用出现分享列表中。Android应用中能很方便的完成这些功能,这也正是Android的伟大之处,他能很简单的完成应用之间的沟通以相互整合。调用分享功能1、分享文本分享功能使用的隐式启动Activity的方法,原创 2015-06-03 14:12:57 · 630 阅读 · 0 评论 -
Android学习 - Android网络编程https
https 不验证证书方式(信任所有证书)前面写了http的联网方式,Android平台上经常有使用https的需求,对于https服务器使用的根证书是受信任的证书的话,实现https是非常简单的,直接用httpclient库就行了,与使用http几乎没有区别。但是在大多数情况下,服务器所使用的根证书是自签名的,或者签名机构不在设备的信任证书列表中,这样使用httpclient进行http转载 2015-05-19 20:40:53 · 770 阅读 · 0 评论 -
Android学习 - Android最佳性能实践
(一)合理管理内存怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序,不仅仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是阅读了不少Android官方给出的高性能编程建议,把这些建议进行整理和分析,帮助大家能够写出更加出色的应用程序。注意文章的内容基本源于AndroidDoc,如果想要阅读更加详细的关于性能原创 2015-06-08 11:50:51 · 850 阅读 · 0 评论 -
Android学习 - 如何结束进程
Android结束进程,关闭程序的方法。经过这几天的调研,发现了Android结束一个进程的方法。即采用下面这个类:void android.app.ActivityManager.restartPackage(String packageName)public void restartPackage (String packageName)Since: API Level 3Ha原创 2015-06-09 16:03:09 · 622 阅读 · 0 评论 -
Ubuntu下Android Studio开发环境搭建
Ubuntu下Android开发环境搭建Ubuntu系统下Android开发环境搭建,Google提出新的开发工具Android Studio,这里就搭建Android Studio开发环境搭建。一、Ubuntu下JDK处理首先,需要安装JDK,Ubuntu系统上OpenJDK,但是编程开发必须使用OracleJDK,所以还需安装Oracle JDK。当前的Android Studio原创 2016-07-16 14:44:51 · 1288 阅读 · 0 评论 -
Android学习 - Android XML的使用
一、布局文件。在layout目录下,使用比较广泛;我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),系统会根据不同情况自动找到最合适的布局文件,但是在同一界面的两套不同布局文件的文件名应该是相同的,只是放在了两个不同的目录下。二、图片文件。在drawable目录下,从2.1版本以后分为三个目录:1转载 2017-09-07 11:45:01 · 706 阅读 · 0 评论 -
Android学习 - onRetainNonConfigurationInstance()与onSaveInstanceState()的比较
Android中转屏与Activity状态的保存有很多种方法,其中onSaveInstanceState()和onRetainNonConfigurationInstance()比较常用,此处比较这两种方式适用地方。针对Android平台,不论出于哪种目的,都或多或少需要在多个Activities中的跳转操作,其中包括为了获得某些系统资源和必要信息,而通过启动(startActivity()、转载 2017-09-07 16:29:03 · 2649 阅读 · 0 评论 -
Android学习 - 拨号盘dialer定制声音DTMF Tones
DTMF:双音多频,电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。双音多频的拨号键盘是4*4的矩阵,每一行代表一个低频,每一列代表一个高频,每按一个键就发送一个高频和低频的正弦信号组合。比如1相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。现在我就想给自己的拨号键盘加上双音多频的声音,类似于固定电话拨号的声音。页面类似于系统的拨号盘。p转载 2015-06-03 10:32:01 · 829 阅读 · 0 评论 -
Android学习 - Service被关闭后自动重启,解决被异常kill 服务
Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值,这篇文章就是简单地讲讲int返回值的作用。从Android官方文档中,我们知道onStartCommand有4种返回值:原创 2015-06-03 10:49:44 · 589 阅读 · 0 评论 -
Android学习 - ant批量打包
很多的应用中需要加上应用推广的统计,如果一个一个的去生成不同渠道包的应用,效率低不说,还有可能不小心弄错了分发渠道,使用ant可以批量生成应用。一、添加渠道包信息为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针对不同的渠道打不同的包。一般可以在Manifest文件中加入渠道编号,而不直接写在代码中。这样做的好处是,可以针对不同渠道,自动化去修改Manifest文件中的渠道编转载 2015-06-03 09:37:11 · 462 阅读 · 0 评论 -
Android学习 - android应用安全
签名机制关注android应用安全,应该关注android的签名机制,平时我们都是使用eclipse直接签名,不了解签名的流程机制,我们今天开始了解一下。Android签名在android应用中扮演着很重要的角色,例如,Android系统禁止更新安装签名不一致的APK;如果应用需要使用system权限,必须保证APK签名与Framework签名一致,等等。android应用签名在应用防篡改、防转载 2015-05-18 20:37:47 · 531 阅读 · 0 评论 -
Android学习 - android上实现编解码
speex编解码Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛。另外,相对于其它编解码,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。Speex是基于CELP并且专门为码率在2-44kbps的语音压缩而设计转载 2015-05-18 20:53:24 · 1175 阅读 · 0 评论 -
Android学习 - 网络编程的理解
1、Socket通信(底层、通信的数据协议、通信模式)通信模式:同步、异步通信协议:有状态(常连接)、无状态(无常连接)(无法把第二次关联和第一次关联联系起来)在一次完整的通信会话过程中连接(socket)一直建立着,没有中断。有状态:例如打电话,我第一次打给你问你吃了吗?你说吃了,然后我又问你吃啥,你说喝粥,也就是说第二次我问你的时候你知道我是谁?无状态:我第一次打电话给你问原创 2015-06-02 22:45:45 · 563 阅读 · 0 评论 -
Android学习 - Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针、强指针和弱指针)的实现原理。在使用C++来编写代码的过程中,指针使用不当造成内存泄漏一般就是因为new了一个对象并且使用完之后,忘记了delet转载 2015-06-01 18:22:43 · 465 阅读 · 0 评论