随笔分类 -  Android编程

摘要:一、需求分析 最近电脑需要连接WiFi,却发现WiFi密码给忘记了。而手机里有保存过的WiFi密码,但是在手机的设置界面看不到。 虽然已经有一些可以查看WiFi密码的app,但是主要还是担心密码被那些app传到后台去。还是自己写一个比较放心。而且用app查看只需要点击一下,要比直接查找系统里保存了密... 阅读全文
posted @ 2015-10-05 09:41 juejiang 阅读(7046) 评论(2) 推荐(5)
摘要:Android通过HttpConnectionParams类为http参数设置提供了两个超时的设置选项,分别是setSoTimeout和setConnectionTimeout。初看一眼Android官方给的文档对这个两个方法的具体含义有一种不理解不够清楚的感觉,所以决定通过测试的方式来看看到底在... 阅读全文
posted @ 2014-06-08 20:42 juejiang 阅读(2582) 评论(0) 推荐(0)
摘要:一、现象 一般通过Android webview进行下载文件的方法是 1.重写DownloadListener的onDownloadStart方法,在onDownloadStart方法中弹出对话框提示用户有新的文件需要下载 2.用户点击确定之后,通过http get下载文件 由于Android we... 阅读全文
posted @ 2014-05-11 22:55 juejiang 阅读(2858) 评论(0) 推荐(1)
摘要:从昨天上午到现在,大部分时间都是在将i9100g更新到4.4。虽然中途也做了一些别的事情,但是更新过程还是走了一点弯路,比开始预想的稍微慢了一点,现在将完整的更新步骤分享给大家,以帮助后来的同学。升级前首先备份好现有文件(可以试试钛备份[4])。从这里下载相关文件一、线刷至4.1.21)如果满足如... 阅读全文
posted @ 2014-05-01 16:07 juejiang 阅读(2571) 评论(0) 推荐(0)
摘要:package name是Android系统中为每一个应用程序分配的一个标识,每个应用的标识都必须是不同的。在应用开发过程中,有时候可能需要对package name进行修改,这里主要总结修改package name的方式和常见问题及有效的解决办法。 在AndroidManifest.xml中的package字段明确指出了package的名称,但是仅仅通过修改package字段来修改应用的package name是不够的,因为package name直接和资源文件R相关,造成在每一个acitvity的文件中,都有这么一句话,import (package name).R;因此,要修改pack. 阅读全文
posted @ 2014-03-08 23:00 juejiang 阅读(1210) 评论(0) 推荐(0)
摘要:在给应用设计图标的时候,可能会遇到这样的需求,应用图标有老版和新版两种,而又想在桌面上同时显示这两个图标以对比效果。 一个应用本身只有一个自己的icon,在AndroidManifest.xml文件中的的android:icon属性中可以进行设置。不过Android系统本身Intent的shortcut属性可以将启动一个intent的方式保存到Android系统的桌面上,并且还可以设置相应的图片。微信中将好友“添加到桌面”的功能应该就是用shortcut的intent来实现的。这里借助于shortcut intent来实现多个应用icon的对比。具体代码如下一、设置shortcut inte. 阅读全文
posted @ 2014-01-24 19:02 juejiang 阅读(1365) 评论(0) 推荐(0)
摘要:刚才在使用eclipse的时候发生了vm占用过高而无法使用的问题,最初我以为只要重启eclipse就可以解决,重启之后仍然没有效果。重启PC之后打开eclipse仍然无法打开。eclipse是有自己的崩溃日志的,找到崩溃日志,经过尝试确认stackoverflow中的一个回答对于我的问题是有效的,具体步骤如下。一、查看eclipse的崩溃日志 eclipse的崩溃日志保存的位置是 (工作空间目录/.metadata/.log)。打开.log文件,可以看到eclipse运行的日志,也有最近崩溃的日志。我注意到其中一个崩溃的log是:!ENTRY org.eclipse.ui 4 0 2014-. 阅读全文
posted @ 2014-01-03 17:34 juejiang 阅读(611) 评论(0) 推荐(0)
摘要:Android程序中一旦加载的图片比较多,就有可能出现Out of Memory而导致程序崩溃。这个一方面是因为Android系统本身对于每个单独的进程有内存大小的限制(有16M,64M,128M,256M等等),另一方面是因为Android系统对于图片资源的垃圾回收比较慢(文章http://jiangnane.com/index.php/archives/230中对Android源码进行了分析,发现Android的setImageViewBitmap(Bitmap bm)方法的源码中没有建立新的bitmap,而是用引用的方式来使用bm的,这就导致bm被多处引用)。 那一幅图片占用的内存大概. 阅读全文
posted @ 2013-11-17 19:41 juejiang 阅读(3204) 评论(0) 推荐(2)
摘要:手边的samsung手机设置多语言的方式一般是点击设置多语言的一栏后进入到多语言选择界面,选择完成之后当前的语言环境用小字方式直接显示在设置多语言栏的下方。另一种选择多语言的方式如上图所示,我也在系统的其它地方找到了,现在想实现一下类似的界面。 直接使用radiogroup+radiobutton的话,经过尝试不会有中间的一条分栏线,这样显得上下两行的空白较为空旷,整体界面不够整齐,而且单用Android系统radiobutton可能会遇到如下问题1。因此便决定通过listview的方式来实现。实现过程中遇到了如下两个方面的问题,都在stackoverflow上找到了相应的解释,总结如下: . 阅读全文
posted @ 2013-11-05 22:20 juejiang 阅读(1320) 评论(0) 推荐(0)
摘要:使用isatap隧道可以在手机有IPV4网络的情况下访问IPv6网络资源。关于isatap隧道的配置方法,清华、上交两所学校都给出了相应的在windows xp/2003,windows 2000,以及linux下的配置方法,其中经过测试windows xp/2003的配置方法对于windows 7也是适用的. 但是linux 命令行的配置命令两所学校给出的配置方法不尽相同,考虑到Android的内核本身就是基于Linux的,故想尝试直接通过在Android命令行运行Linux命令来测试是否可以进行相应的配置,上交的isatap服务器IP地址202.112.26.246本地无法ping通,故. 阅读全文
posted @ 2013-11-05 21:42 juejiang 阅读(2912) 评论(0) 推荐(0)
摘要:对Android开发一致性有一定考虑的程序员应当或多或少对Actionbarsherlock这个库有一定的了解。Actionbarsherlock的产生是因为Android在3.0(API 11)之后推出了actionbar功能,而对于3.0之前的系统来说,就没有actionbar支持,Actionbarsherlock主要就是为了在3.0之前的系统中也能方便地使用actionbar而产生的。 为了对之前的系统进行更好地支持,Google在也提供了类似的库android.support.v7,2013年7月有所更新,使用这个库也可以实现对API level 7到API level 11之间.. 阅读全文
posted @ 2013-11-02 23:32 juejiang 阅读(1031) 评论(0) 推荐(0)
摘要:Android操作系统本身就是一个巨大的开源软件仓库,熟悉它既可以了解到Android系统的设计框架,也可以获得高效的应用程序编写方式。本文所分析的源码来自于Google官方的AOSP源码4.0.1_r1,手机的Android版本是CM 4.2.2。对于Android系统分析而言,手机的操作系统版本和源码版本有些不一致的地方不会有太大的影响,但是如果需要将源码中的修改安装到手机里面的话,最不容易遇到问题的办法就是保持手机中系统的版本和源码的版本完全一致了。1.程序入口发现每一个应用程序都应当有各自的入口,使用JAVA编写的Android应用程序也不例外。确认应用的入口是确认应用在系统中对应源. 阅读全文
posted @ 2013-09-20 14:28 juejiang 阅读(3766) 评论(2) 推荐(0)
摘要:个人感觉在命令行中卸载程序要比在手机界面卸载程序要方便许多,配合命令行下的报名查看包名的命令就更加方便了。 1.查看应用准确包名 adb shell pm list package -f |grep 包名的关键字https://gist.github.com/davidnunez/1404789 2.使用“adb shell uninstall 包名”卸载应用。 阅读全文
posted @ 2013-09-02 22:21 juejiang 阅读(1363) 评论(0) 推荐(0)
摘要:在Android应用实现过程中,有时候会遇到应用之间相互跳转的情况,比如跳转至系统设置界面、WiFi设置界面、或者其它的用户实现的应用主界面等等。这里总结了几种常见的打开其它应用activity的方式1.使用adb shell +am的方式 am是命令行下的activity管理工具,使用am可以快速打开应用的activity。并且打开应用的主activity是不需要root权限的。比如打开系统WiFi设置界面的命令为am start -n com.android.settings/.wifi.WifiSettings。对于自定义的应用的命令格式也类似为am start -n 应用包名/应用的. 阅读全文
posted @ 2013-09-02 22:11 juejiang 阅读(1505) 评论(0) 推荐(0)
摘要:问题现象和http://hi.baidu.com/cara_cloud/item/193a3ee327546d395a2d64be描述的一样,就是在eclipse的console栏中一直显示java.io.IOException: 您的主机中的软件中止了一个已建立错误。具体如下。[2013-09-02 17:24:14 - ddmlib] 您的主机中的软件中止了一个已建立的连接。java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 at sun.nio.ch.SocketDispatcher.write0(Native Method) at sun.nio.ch. 阅读全文
posted @ 2013-09-02 17:08 juejiang 阅读(14641) 评论(0) 推荐(0)
摘要:最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议、程序出现的问题以一种更符合用户习惯的方式反馈回来。网上也有一些实现好的反馈程序的服务,包括bug的提交、程序的建议、程序使用中的问题,但是这样的服务基本上不是完全开源和免费的,并且我对程序反馈的定位还是用户可以把他的想法通过写文字的方法发送回来就可以(不需要记录崩溃时的系统状况),所以还是决定在完全了解实现机制的基础上来实现反馈功能。 采用发送邮件的方式不需要自己构建服务器,同时也符合我对反馈的管理习惯,因此决定采用在通过在应用程序内发送邮件的方式来实现反馈功能。 stackoverflow上的回. 阅读全文
posted @ 2013-08-25 21:18 juejiang 阅读(1994) 评论(0) 推荐(0)
摘要:最近在新导入一个Android工程时遇见了已有工程无法导入的情况。具体的现象就是每次导入时的导入窗口很快消失,而在eclipse的package explorer中却没有增加新导入的工程文件夹,没有其他的错误提示。 eclipse工程导入的常见方法1. File->Import->Existing Android Code into Workspace,弹出导入工程窗口,选择导入工程所在目录。2.在package explorer窗口中单击右键->New->Project...->Android Project From Existing Code,弹出导入工程窗 阅读全文
posted @ 2013-08-20 20:00 juejiang 阅读(2773) 评论(0) 推荐(0)
摘要:在命令行中运行adb shell 出现如下错误提示C:\Documents and Settings\Administrator>adb shelladb server is out of date. killing...ADB server didn't ACK* failed to start daemon *error: protocol fault (no status)经过调试之后发现产生这个问题的原因是:adb使用的5037端口被其他应用程序(豌豆荚、暴风手机助手,sjk_deamon.exe)占用。1.查看5037端口被哪些应用程序占用这里使用Fport工具,Fpo 阅读全文
posted @ 2013-07-26 16:16 juejiang 阅读(1334) 评论(0) 推荐(0)
摘要:手机的屏幕相对较小,因此会出现当有多项内容需要展示而不得不进行分页的情况。例如手机桌面的应用图标的展示。一般一屏可以显示4*4=16个小方块形的应用程序,可以通过左右滑动进行屏幕的选择。而Android自带的gridView组件并不支持直接的左右滑动以及分页。目前实现在Android系统中分页的方法通常可以分为如下几类: 1.使用horizontalScrollView+Gridview的形式。http://www.xcoder.cn/html/mobile/android/2013/0609/10999.htmlhttp://www.iteye.com/topic/1114852 ... 阅读全文
posted @ 2013-07-25 10:08 juejiang 阅读(1516) 评论(0) 推荐(0)
摘要:Android中设置定时器目前来看有两种方法,一种是基于handler的postDelayed方法,另一种是使用AlarmManager类。根据Android官方的描述“Note: The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running. For normal timing operations (ticks, timeouts, e. 阅读全文
posted @ 2013-06-10 16:52 juejiang 阅读(1169) 评论(0) 推荐(0)