作者归档:Android龙

关于 Android龙

以无所不知和一无所知的方式来思考 以即将赴死和永生不死的态度来生活

ListView之排序

本文主要讲ListView排序问题,关于布局,请参考ListView之动态修改。 单字段排序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 private ArrayList<Map<String, Object>> mArrayList; private void getData() {   //add Data….. //对ListView中数据list排序 if (!mArrayList.isEmpty()){ Collections.sort(mArrayList, new Comparator<Map<String, Object>>() {     … 继续阅读

发表在 Android开发 | 标签为 , | 留下评论

Android权限机制总结与常见权限不足问题分析

Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制, 很多像我这样的新手,尤其是习惯了windows低安全限制的用户,很容易在这方面弄混淆,下面是我总结的Android系统权限相关的内容, 作为这段时间对android权限学习的总结,也希望能对大家有所帮助,不正确之处请指出。 首先分清两个概念: 要区分apk运行时的拥有的权限与在文件系统上被访问(读写执行)的权限两个概念。 apk程序是运行在虚拟机上的,对应的是Android独特的权限机制,只有体现到文件系统上时才使用linux的权限设置。 (一)linux文件系统上的权限 -rwxr-x–x system   system       4156 2010-04-30 16:13 test.apk 代表的是相应的用户/用户组及其他人对此文件的访问权限,与此文件运行起来具有的权限完全不相关。 比如上面的例子只能说明system用户拥有对此文件的读写执行权限;system组的用户对此文件拥有读、执行权限;其他人对此文件只具有执行权限。 而test.apk运行起来后可以干哪些事情,跟这个就不相关了。 千万不要看apk文件系统上属于system/system用户及用户组,或者root/root用户及用户组,就认为apk具有system或root权限。 (二)Android的权限规则 (1)Android中的apk必须签名 这种签名不是基于权威证书的,不会决定某个应用允不允许安装,而是一种自签名证书。 重要的是,android系统有的权限是基于签名的。比如:system等级的权限有专门对应的签名,签名不对,权限也就获取不到。 默认生成的APK文件是debug签名的。 获取system权限时用到的签名,见:如何使Android应用程序获取系统权限 (2)基于UserID的进程级别的安全机制 大家都知道,进程有独立的地址空间,进程与进程间默认是不能互相访问的,是一种很可靠的保护机制。 Android通过为每一个安装在设备上的包(apk)分配唯一的linux userID来实现,名称为”app_”加一个数字,比如app_43 不同的UserID,运行在不同的进程,所以apk之间默认便不能相互访问。 Android提供了如下的一种机制,可以使两个apk打破前面讲的这种壁垒。 在AndroidManifest.xml中利用sharedUserId属性给不同的package分配相同的userID,通过这样做,两个package可以被当做同一个程序, 系统会分配给两个程序相同的UserID。当然,基于安全考虑,两个package需要有相同的签名,否则没有验证也就没有意义了。 (这里补充一点:并不是说分配了同样的UserID,两程序就运行在同一进程, 下面为PS指令摘取的, 显然,system、app_2分别对应的两个进程的PID都不同,不知Android到底是怎样实现它的机制的) User   PID PPID system    953   … 继续阅读

发表在 Android开发 | 标签为 , | 留下评论

Android样式之在代码中添加样式

有时候需要在java中定义控件,但是系统的控件难看。 想换Style?setStyle?Android View中根本就没有这个方法。 因为Style不是一个属性,而是一个属性集合。所以是无法直接set的。 这里以CheckBox做示例 找到framework下的res目录下的values/Theme.xml。找到CheckBox的样式定义 1 2 3 <item name="checkboxStyle"> @android:style/Widget.CompoundButton.CheckBox </item> 打开同目录下的style.xml,找到“Widget.CompoundButton.CheckBox”样式。 1 2 3 4 5 6 7 8 <style name="Widget.CompoundButton.CheckBox"> <item name="android:background"> @android:drawable/btn_check_label_background </item> <item name="android:button"> @android:drawable/btn_check </item> </style> 下面知道该怎么做了吧? 在代码中给上面的属性赋相应的值就可以了。 1 2  cb.setBackgroundResource(R.drawable.checkbox_bg);  cb.setButtonDrawable(R.drawable.checkbox_button); 还有一种方法,但是对大部分应用程序来说都做不到,因为需要在系统资源中添加Style(可能有更好的方法,暂未找到)。 … 继续阅读

发表在 Android开发 | 标签为 , | 留下评论

暂未注册的较好域名

com、net域名: cnxiluo.com csshing.com comapr.com clsh.net mnnic.com cumway.com enashop.com earnmine.com hanizi.com duomap.com finevip.com exiaozi.com julock.com ida3.com hoiiy.com joyskys.com laijiayou.com nextting.com laoabc.com oilta.com antgame.net atbeat.com prfd.net pfef.net qhff.net rsrk.net rrtk.net qljy.net qmdf.net spwz.net pfst.net rycq.net rbxx.net sxco.net sbau.net slox.net 关于sky的未注册5位com域名: skyaf.com skyaj.com … 继续阅读

发表在 网络 | 标签为 | 留下评论

ListView之动态修改

关于ListView样式及内容的动态修改,本文使用了重写BaseAdapter。 MyAdapter 类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 … 继续阅读

发表在 Android开发 | 标签为 , | 留下评论

众多Android 开源项目推荐,给力工作给力学习

FBReaderJ  FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb、ePub和fb2。此外还支持直接读取zip、tar和gzip等压缩文档。   项目地址:http://www.fbreader.org/FBReaderJ/   Angle     Angle是一款专为Android平台设计的,适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现。项目地址: http://code.google.com/p/angle/         android-shuffle    android-shuffle是一个GTD(Getting Things Done)个人备忘记事本。   项目地址:http://code.google.com/p/android-shuffle/      Open GPS Tracker  GPSTracker是一个能够使用Android地图记录你的驾车或旅行路线的项目,出发前打开软件选择开始记录,你所经过的路线就会实时显示在地图上,同时还会显示当前的行驶速度。程序会按用户自己设置的标题自动存路线留做日后查看,也可以把路线分享给朋友。GPSTracker项目是一个Map方面的完整应用,包括两个主要组成部分,第一部分是一个收集和存储GPS追踪数据的系统服务,第二部分是Map Activity控制跟踪数据并在地图上显示提供接口。GPSTracker项目用到了osmdroid项目的部分功能,其中OpenStreetMap是一个可供自由编辑的世界地图,允许您查看,编辑或者使用世界各地的地理数据来帮助您。   项目地址:http://code.google.com/p/open-gpstracker/      Rokon  Rokon是一个强大、可扩展、灵活的Android 2D游戏引擎,基于OpenGL ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,有人将它称为Cocos2d-iPhone引擎的Android版(因为业务逻辑和编码风格上也确实很像)。 )。 项目地址:http://code.google.com/p/rokon/        … 继续阅读

发表在 Android开发 | 标签为 , | 留下评论

Android 源码目录结构详解

Android 2.1 |– Makefile |– bionic                        (bionic C库) |– bootable                (启动引导相关代码) |– build                        (存放系统编译规则及generic等基础开发包配置) |– cts                        (Android兼容性测试套件标准) |– dalvik                        (dalvik JAVA虚拟机) |– development        (应用程序开发相关) |– external                (android使用的一些开源的模组) |– frameworks                (核心框架——java及C++语言) |– hardware                (部分厂家开源的硬解适配层HAL代码) |– out                        (编译完成后的代码输出与此目录) |– packages                (应用程序包) |– … 继续阅读

发表在 Android源码 | 标签为 , | 留下评论

Android Permission中英对照

android.permission.ACCESS_CHECKIN_PROPERTIES Allows read/write access to the “properties” table in the checkin database, to change values that get uploaded 允许读写访问 “properties”表在checkin数据库中,改值可以修改上传 android.permission.ACCESS_COARSE_LOCATION Allows an application to access coarse (e.g., Cell-ID, WiFi) location 允许一个程序访问CellID或WiFi热点来获取粗略的位置 android.permission.ACCESS_FINE_LOCATION Allows an application to access fine (e.g., … 继续阅读

发表在 Android开发 | 标签为 , , | 留下评论

Android 控制台错误 应用程序获取系统权限

在windows平台通过eclipse编译android源码中,如果编译Settings或者android manifest XML中 shared user id 包含android.uid.shared等系统权限的时候,则会报以下错误。 一、Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE 1、由于卸载没有完全,可以使用设置中卸载相应应用,或者adb uninstall com.android.*** 二、Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 主要是由于使用了android.uid.shared导致的问题。 第一个方法简单点,不过需要在Android系统源码的环境下用make来编译: 1. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行 2. 使用mm命令来编译,生成的apk就可以在模拟器中运行了。 第二个方法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译: 1. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。 2. 查看Android.mk文件,加入LOCAL_CERTIFICATE := 这一行,根据这行的内容,选择相应的签名。 platform—–>platform.pk8和platform.x509.pem shared  —–>shared.pk8和shared.x509.pem 3. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦, 首先找到密钥文件,在我的Android源码目录中的位置 是”build\target\product\security”,下面的platform.pk8和platform.x509.pem 两个文件。 然后用Android提供的Signapk工具来签名,signapk的源代码是 … 继续阅读

发表在 Android开发 | 标签为 , | 留下评论