玩转android
文章平均质量分 57
_江南一点雨
Java攻城狮
展开
-
下载好一个android软件之后,怎样自动提示安装?
最近在做毕设,里面牵涉到版本更新,当有新版本时可以下载新版本,下载完成之后提示安装。那么怎么实现下载完成之后提示安装呢?原创 2015-04-15 11:30:50 · 7525 阅读 · 1 评论 -
JNI 学习笔记系列(一)
JNI是Java native interface,也即Java本地应用开发接口。JNI相当于一个中间件,通过它可以使Java和C语言之间互相调用。 Java语言不能写驱动程序,因为Java的运行是在Java虚拟机上,虚拟机将底层东西屏蔽掉了,Java不能直接在底层运行,所一不能用Java写驱动程序。 在android开发中有哪些功能的开发需要用到JNI呢?1.wifi热点共享,操作手机网卡,把原创 2015-04-24 20:10:38 · 7496 阅读 · 0 评论 -
android使用模拟机测试时,若要联网IP地址该怎么写?
android使用模拟机测试时,如果服务器也是本机,那么IP地址如果写为localhost或者127.0.0.1,这样其实是不能访问到本机上部署的服务端,那么该怎么写呢?很简单,把IP地址改为10.0.2.2,这样就可以访问到部署在本机上的服务了。原创 2015-04-17 19:58:56 · 7602 阅读 · 0 评论 -
JNI 学习笔记系列(二)
c中没有Boolean类型的值,一般是使用1表示true,0表示false,c中也没有String类型的数据,c中的字符串要通过char数组来表示。c中没有byte类型,一般用char表示byte类型。先看看c中数据类型长度:# include# includemain(){ printf("char类型的长度为:%d\n",sizeof(char)); p原创 2015-04-25 16:03:27 · 7108 阅读 · 0 评论 -
jackson 学习笔记
Jackson以优异的解析性能赢得了好评,今天就看看Jackson的一些简单的用法。 Jackson使用之前先要下载,这里一共有三个jar包,想要获得完美的Jackson体验,这三个jar包都不可或缺。1.将一个类以json字符串的形式输出: //将一个类以json字符串的形式输出 @Test public void test1(){ ObjectM原创 2015-04-27 22:05:53 · 8135 阅读 · 0 评论 -
android开发之手势识别
android开发之手势识别原创 2015-05-14 22:54:08 · 7884 阅读 · 0 评论 -
android之Java+html+javascript混合开发
android开发,除了使用原生态的开发方式之外,还可以使用java+html+javascript混合开发的方式来开发,这样可以节省大量的开发时间,同时还可以使不同设备的用户获得相同的用户体验。好了,废话不多说,先来看看今天要做什么。 主要是实现一个简单的注册功能,先用jquery mobile的方式写一个简单的注册页面,点击提交按钮之后跳转到一个新的activity中,同时把用户的注册信息显原创 2015-05-14 22:21:57 · 11747 阅读 · 1 评论 -
android开发之单点触摸
相对于多点触摸,单点触摸还是很简单的。 新建一个工程,先看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"原创 2015-05-15 20:13:07 · 8357 阅读 · 1 评论 -
android之tween动画详解
android中一共提供了两种动画,其一便是tween动画,tween动画通过对view的内容进行一系列的图像变换(包括平移,缩放,旋转,改变透明度)来实现动画效果,动画效果的定义可以使用xml,也可以使用编码来实现。 下面我们逐一查看tween能够实现的动画效果。 先看看工程的整体结构吧:我们要实现的效果图如图点击按钮则执行相应的动画操作。布局文件activity_main.xml<Linear原创 2015-05-13 20:04:28 · 9746 阅读 · 3 评论 -
android之frame动画详解
上一篇我们说了android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示。 新建一个android项目,名字叫做frameTest,在res文件夹下新建一个文件夹叫做anim,我们的frame动画的xml文件就放在这里。 在anim中新建一个frame.xml文件,内容如下:<?xml versi原创 2015-05-14 09:54:37 · 7874 阅读 · 3 评论 -
android开发之国际化
国际化,听起来高大上,做起来很简单。 我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如android系统默认是英语,应用就以英文的形式显示,如果android系统默认是中文,则应用就显示中文。 新建一个工程,名字叫做I18N,要做国际化,字符串的显示一定要按android规定的来,就是要显示的文字都定义在string里,一般情况下,新建的项目中会有一个values文件夹,va原创 2015-05-15 11:15:22 · 7181 阅读 · 0 评论 -
android中的样式和主题
有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便。我们来看一个简单的例子,在一个页面中有三个textview,每个textview显示内容不同但是样式都相像,先来看看显示效果:布局文件:"http://schemas.android.com/apk/原创 2015-05-15 21:22:09 · 7303 阅读 · 0 评论 -
android自定义控件之模仿优酷菜单
去年的优酷HD版有过这样一种菜单,如下图:应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋转进入,点击二级菜单的menu键,三级菜单旋转进入,再次点击二级菜单的旋转键,三级菜单又会旋转退出,这时再点击一级菜单,二级菜单退出,最后点击实体menu键,一级菜单退出。总体来说实现这样的功能: (1原创 2015-05-19 11:50:46 · 8064 阅读 · 2 评论 -
android自定义控件之滚动广告条
在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图:其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做。先来看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:原创 2015-05-19 15:47:42 · 10432 阅读 · 7 评论 -
android之listView定位到指定行同时隐藏输入键盘
帮别人该bug遇到的一个问题,记录下来。 listView.setSelection(a); 这个方法可以让让你的listview定位到指定行但是如果紧接着执行隐藏输入键盘的代码,则会有bug,这个时候定位无法实现。 imm.hideSoftInputFromWindow(PatientAddActivity.this原创 2015-06-26 12:10:29 · 2093 阅读 · 0 评论 -
sqlite数据库修改及升级
今天是上班的第二天,听说我最近的任务就是改bug,唉,权当学习了,遇到的一些问题都记录下来。sqlite数据库是android中非常常用的数据库,今天帮别人改bug,遇到一些问题记录下来。 1.修改数据库表的结构要通过数据库升级来实现,数据库会自动执行SQLiteOpenHelper的继承类中的public void onCreate(SQLiteDatabase db) {}方法,如果数据库要升原创 2015-06-26 18:05:18 · 2632 阅读 · 0 评论 -
popupWindow使用详解
popupWindow说起来简单,但是使用略麻烦,今天带大家来看看怎么使用,先来看看效果图: 先来看看布局文件吧:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layou原创 2015-06-27 19:02:23 · 2792 阅读 · 1 评论 -
使用Broadcast实现android组件之间的通信
android组件之间的通信有多种实现方式,Broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例。 效果如图: 布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/原创 2015-07-09 14:16:19 · 2787 阅读 · 0 评论 -
android之AlertDialog 点击其他区域自动消失
遇到一个问题记录下来,在开发中使用了AlertDialog,想点击屏幕其他区域的时候让这个dialog消失,一开始不做任何设置,在小米手机可以正常显示,但是在三星中却有问题,后来发现少了一个属性:View dilaogView = initDialogView(); builder = new AlertDialog.Builder(原创 2015-07-03 14:07:07 · 6659 阅读 · 4 评论 -
给EditText的drawableRight属性的图片设置点击事件
这个方法是通用的,不仅仅适用于EditText,也适用于TextView、AutoCompleteTextView等控件。 Google官方API并没有给出一个直接的方法用来设置右边图片的点击事件,所以这里我们需要通过点击位置来判断点击事件,效果如图: 布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/a原创 2015-07-06 13:20:47 · 10884 阅读 · 5 评论 -
ubuntu中安装eclipse
上一篇说了安装jdk的事,于是趁热打铁,决定把eclipse也安装了。 下载这一系列就不用说了。下载完成之后:然后解压,解压之后文件剪切到/usr/software文件夹中,同时重命名为eclipse,剪贴重命名方法参见 ubuntu文件管理常用命令 。这样eclipse就可以运行了,如图: 不过每次这样敲命令都特别麻烦,我们需要在/usr/bin中添加eclipse启动命令: 这样,在命令行原创 2015-07-07 10:19:16 · 2323 阅读 · 0 评论 -
android自定义UI模板图文详解
不知道大家在实际开发中有没有自定义过UI模板?今天花时间研究了一下android中自定义UI模板,与大家分享一下。 每个设计良好的App都是自定义标题栏,在自定义标题栏的过程中大部分人可能都是自定义一个标题的xml文件,然后在需要的地方直接通过include来引用,这比起在每个布局文件中写标题栏已经进化很多了,但仍然不是最简单有效的方法,我们为什么不能自定义一个标题控件呢?今天就带大家自己做一个原创 2015-08-08 22:29:28 · 4874 阅读 · 0 评论 -
android注解使用详解(图文)
在使用Java的SSH框架的时候,一直在感叹注解真是方便啊,关于注解的原理,大家可以参考我的另一片文章Java注解详解。最近有时间研究了android注解的使用,今天与大家分享一下。android中注解的使用用到了GitHub上的开源框架androidannotations,下载地址。这个开源框架应该是目前使用人数最多的android注解框架了,主要是由于它设计的注解标签非常多,能够满足我们日常开发原创 2015-08-08 10:45:59 · 9936 阅读 · 7 评论 -
android开发之AlertDialog点击按钮之后不消失
最近有这样一个需求,我需要用户在一个弹出框里输入密码来验证,验证成功当然好说,但是如果验证失败则需要把alertdialog的标题改为“密码错误,请重新输入”,并且这个alertdialog还不能消失,要等待用户继续输入。 那么怎么实现点击确定或者取消按钮之后dialog不消失呢?// 不关闭dialog原创 2015-07-15 18:07:40 · 2776 阅读 · 2 评论 -
BaseAdapter优化深入分析
BaseAdapter是一个数据适配器,将我们提供的数据格式化为ListView可以显示的数据,BaseAdapter的优化直接影响到ListView的显示效率。 我们都知道,ListView自带有回收机制,当一个Item滑出屏幕的时候,ListView会自动把这个ListView回收到缓冲区,当有一个Item滑入屏幕的时候,ListView会自动从缓冲区读取一个Item,并给它赋上值,然后显示出原创 2015-08-09 10:04:59 · 2396 阅读 · 4 评论 -
修改android应用包名
由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间。 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦。 1.修改清单文件 2.重新在Java文件中导入R文件 1改完之后系统就会报错,这是因为R文件找不到了,这时要在每个Java文件中重新导入R文件 3.修改Java文件的包名 执行完步骤2之后,原创 2015-07-16 22:48:45 · 4489 阅读 · 4 评论 -
android开发之this.finish()的使用
在一个Activity用完之后应该将之finish掉,但是,之前在学校里自己摸索着开发时并没有太注意这个问题,因为activity无论是否finish掉对功能的影响貌似都不是那么明显(这是读书时候的观点),因此也就没有仔细考虑过activity合适finish这个问题。最近在公司的项目里遇到这个问题,于是就总结了一下。假设我们有三个activity,分别叫做A、B、C第一种情况: 我们先从A跳转到原创 2015-07-18 19:05:30 · 8426 阅读 · 2 评论 -
android开发之merge结合include优化布局
merge结合include优化android布局,效果不知道,个人感觉使用上也有很大的局限,不过还是了解一下,记录下来。布局文件都要有根节点,但android中的布局嵌套过多会造成性能问题,于是在使用include嵌套的时候我们可以使用merge作为根节点,这样可以减少布局嵌套,提高显示速率。<?xml version="1.0" encoding="utf-8"?><merge xmlns:a原创 2015-07-29 20:54:27 · 4068 阅读 · 2 评论 -
AndroidManifest.xml中的application中的name属性
被这个不起眼的属性折磨了一天,终于解决了。 由于项目需要,要合并两个android应用,于是拷代码,拷布局文件,拷values,所有的都搞定之后程序还是频频崩溃,一直没有找到原因,学android时间也比较久了,但是清单文件中的application节点的name属性以前一直没有重视过,甚至没有用过这个属性。 由于整合后的程序频频崩溃,其他地方都没有问题,只有这个属性这里有区别,于是我就怀疑是这原创 2015-07-17 16:51:54 · 8542 阅读 · 1 评论 -
android开发布局优化之ViewStub
使用ViewStub可以延迟加载一个布局文件,提高显示速率。刚开始接触到,记录下来。关于viewstub的使用,我们可以在不同的布局中使用,比如可以根据设备的大小动态决定显示哪个界面。viewstub和include比较像,都是在一个布局文件中嵌入另外一个布局文件,然而viewstub是可以说是延迟加载,它只会在你手动指定加载的时候才会加载这个布局文件,而include则会立即加载。在布局中使用Vi原创 2015-07-29 20:35:35 · 2242 阅读 · 2 评论 -
android开发之gridlayout使用入门
这个东东以前没怎么用过,今天研究了一下,不难,感觉只是在某些方面很好用。 记录下,做个计算器。<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"原创 2015-07-29 21:30:55 · 2662 阅读 · 0 评论 -
android开发之调试技巧
我们都知道,android的调试打了断点之后运行时要使用debug as->android application 但是这样的运行效率非常低,那么我们有没有快速的方法呢? 当然有。 我们打完断点之后,不使用debug as 而是使用run as,运行之后,打开ddms,如图,选中调试的设备。然后点击上面的绿色按钮,这个时候再把断点挂上然后在运行android应用的过程中当运行到断点处就会停下来原创 2015-07-18 21:30:07 · 2172 阅读 · 0 评论 -
android开发之Parcelable使用详解
想要在两个activity之间传递对象,那么这个对象必须序列化,android中序列化一个对象有两种方式,一种是实现Serializable接口,这个非常简单,只需要声明一下就可以了,不痛不痒。但是android中还有一种特有的序列化方法,那就是实现Parcelable接口,使用这种方式来序列化的效率要高于实现Serializable接口。不过Serializable接口实在是太方便了,因此在某些情原创 2015-07-30 15:52:00 · 33922 阅读 · 2 评论 -
android开发之broadcast学习笔记
android中的广播用的太多了,今天稍微总结一下。 按注册方式分为两种:1.静态注册广播: 静态注册广播就是在androidManifest.xml文件中注册广播,假设我们要实现这样一个效果,在一个activity上点击按钮,发送一条广播,这条广播弹出一个toast,显示“静态”二字。先看看广播接受者:public class MyBroadcast extends BroadcastRece原创 2015-07-19 16:33:10 · 2011 阅读 · 0 评论 -
android开发之Bundle使用
android开发中,我们经常需要在两个activity之间传递数据,最常用的莫过于使用intent.putXXX(),可是很多时候我们也会这样:Bundle bundle = new Bundle();bundle.putXXX()...这两种传值方式很像,今天查看intent.putXXX()方法源代码,发现是这样的: /** * Add extended data to th原创 2015-07-30 13:41:49 · 2953 阅读 · 2 评论 -
android反编译经验谈
反编译这事,找对了工具其实非常简单。 反编译工具下载地址http://pan.baidu.com/s/1eQvshwu android的反编译要经过两个步骤: 1.把dex文件转为jar 2.jar转为Java 下面说说详细步骤: 1.解压apk文件,得到classes.dex文件,把这个文件拷贝到dex2jar工具的目录下 在命令行进入到这个目录,并执行如下命令: 执行完后,d原创 2015-07-20 16:12:39 · 2039 阅读 · 2 评论 -
viewpager+fragment学习笔记
有暇,总结一下viewpager+fragment的使用。 先来看看效果图: 有三个标题,三个fragment,滑动时标题的颜色会随着变化。MainActivity.javapublic class MainActivity extends FragmentActivity { private ViewPager vp; private Fragment f1, f2, f3;原创 2015-07-20 13:02:42 · 2499 阅读 · 0 评论 -
android开发之Notification学习笔记
今天总结了一下Notification的使用,与大家分享一下。 MainActivity.java:本文参考:http://www.jb51.net/article/36567.htm,http://www.cnblogs.com/linjiqin/archive/2011/12/14/2288074.htmlpublic class MainActivity extends Activity {原创 2015-07-20 18:08:24 · 2184 阅读 · 0 评论 -
android开发之SwipeListView的使用
实现一种类似于qq中滑动列表的功能:向左或者向右滑动,然后执行相关操作。这里用到的是GitHub上的开源控件SwipeListView,下载地址https://github.com/47deg/android-swipelistview,下载好了之后,我们可以把下载文件当作一个库文件引用它,当然也可以直接把源代码拷贝到我们的想木当中。SwipeListView还依赖一个Github上的第三方控件,叫原创 2015-08-01 18:57:13 · 3728 阅读 · 0 评论 -
android开发之service详解
service作为android的四大组件之一,其重要性可想而知,在开发中,我们经常把一些不需要与用户进行交互的工作放在service中来完成,service运行在后台,这样有些人可能会产生错觉,以为service是运行在新线程中,其实不然,service也运行在主线程中,因此不能在service中进行耗时操作,否则会报ANR异常,但是我们可以在service中新开线程来进行耗时操作,比如下载等等。原创 2015-07-21 16:13:23 · 2136 阅读 · 0 评论