android框架

android学习摘记——自定义Adapter的心得

江枫思渺然 提交于 2019-12-05 13:12:17
在ListView,GridView。。。。中经常用到适配器Adapter,但是anroid 提供的Adapter只是几种框架,如果我们有需求,还是要自己根据需求而自定义Adapter的 android提供的三种Adapter主要有ArrayAdapter,SimpleAdapter,SimpleCursorAdapter,ArraAdapter是简单的字符串适配器(很丑,因为没办法帅。。。),SimpleAdapter是可以自定义子View布局的,可以有图片(只限于本地图片,如果要用网络加载图片,请参考我之前的一篇Blog),SimpleCursorAdapter主要用于数据库,前两个的数据来源一般都是String[]或者List,后一个的数据来源一般是数据库查询得到的Cursor 而我们自定义用的最多的还是继承自SimpleAdapter,下面说一下具体用法 我还是连着上一篇Blog,想做一个显示带下载进度条的子View显示于ListView中,SimpleAdapter可以显示一般的图片,但是无法显示进度条(因为不只是要显示,还要有实时更新),所以我们的做法是继承SimpleAdapter,具体要复写的方法有4个: public int getCount() public Object getItem(int position) public long getItemId

Android Intent机制实例详解(Activity篇)

本小妞迷上赌 提交于 2019-12-05 13:04:10
Android Intent机制实例详解(Activity篇) Android 中提供了 Intent 机制来协助应用间的交互与通讯,或者采用更准确的说法 是, Intent 不仅可用于应用程序之间,也可用于应用程序内部的 Activity/Service 之间的交互。 Intent 这个英语单词的本意是“目的、意向”等,对于较少从事 于大型平台开发工作的程序员来说, 这可能 是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数 / 方法调用,或者上节中提到的通过库调用接口的方式不太一样。在 Intent 的使用中你看不到直接的函数调用,相对函数调用来说, Intent 是更为抽象的概念,利用 Intent 所实现的软件复用的粒度是 Activity/Service ,比函数复用更高一些,另外耦合也更为松散。 Android 中与 Intent 相关的还有 Action/Category 及 Intent Filter 等,另外还有用于广播的 Intent ,这些元素掺杂在一起,导致初学者不太容易迅速掌握 Intent 的用法。在讲解这些名词之前,我们先来从下面的例子中 感受一下 Intent 的一些基本用法,看看它能做些什么,之后再来思考这种机制背后的意义。 理解 Intent 的关键之一是理解清楚 Intent 的两种基本用法:一种是显式的 Intent ,即在构造

自定义Android的ListView布局和各Item的背景色

梦想的初衷 提交于 2019-12-05 11:38:27
Android中的ListView是用得非常频繁的一种组件,同时ListView也是一种很强大的组件,你可以为每一行自定义布局,也可以修改各行的 背景色。自定义布局比较容易,自己实现一个layout的布局文件,然后在adapter的getView里读入就可以了。需要注意的是,在 getView中不需要每次都加载layout文件,因为ListView会重复利用已生成的Item。所以每次拖动上下滚动条的时候其实每行的Item 变化的只是显示的内容,就窗体本身而言是不变的,Android SDK里自带的例子是最好的说明。 ? 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 /** * Make a view to hold each row. * * @see android.widget.ListAdapter#getView(int, android.view.View, * android.view.ViewGroup) */ publicView getView(intposition, View convertView, ViewGroup parent) { // A ViewHolder keeps references to

继续当搬运工之人人网移动端架构解析

感情迁移 提交于 2019-12-05 10:29:16
人人网移动端架构解析 前言 说起手机操作平台的发展先要说移动终端的发展,因为平台的发展离不开移动终端,近十年移动终端发展和未来移动终端趋势大体可分为以下四个个阶段: 第一个阶段: 功能终端。满足用户基本通信需求,如发短信、打电话,附加些贪食蛇、推箱子小游戏。 第二个阶段: 智能化的终端。可扩展第三方应用,实现上网浏览等互联网基础功能,以诺基亚S60手机为代表的。 第三个阶段: 互联网和平台化的终端。手机和互联网更加紧密,浏览器、流媒体更加强大,互联网应用和手机系统特性结合的更加紧密;手机成为了一个平台,用户可以通过下载第三方应用来DIY这款终端,如偏好音乐,可以下载音乐类型的应用。代表为iPhone、Android和Windows Phone 7。 第四个阶段(未来趋势): 物联网化的智能终端。此阶段的特点是现实生活和网络通过传感设备结合的更加紧密。 目前我们处于第三个阶段,对用户而言,由于收入不同、兴趣爱好不同、需求偏好的不同以及手机私人属性和随身性的特点,产生了不同的用户体验;对各个厂商而言,由于目标市场的定位不同、商业利益的不同、技术背景不同,造就了不同的手机操作系统。最终形成了手机操作平台多元化的局面。 目前主流手机操作平台可分为:Symbian、Android、iPhone OS 、MTK、Windows mobile、Wp7六种。下面分别简述下这六个平台的情况。

Android.jar文件浅析

与世无争的帅哥 提交于 2019-12-05 09:07:15
Android.jar文件浅析 作为一个Java项目,通常情况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。如果我们在Eclipse中展开来看,可以看到j2se中的包,apache项目中的包,还有Android自身的包文件。在这里我们简单浏览一下Android的包文件: android.app :提供高层的程序模型、提供基本的运行环境 android.content :包含各种的对设备上的数据进行访问和发布的类 android.database :通过内容提供者浏览和操作数据库 android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上. android.location :定位和相关服务的类 android.media :提供一些类管理多种音频、视频的媒体接口 android.net :提供帮助网络访问的类,超过通常的java.net.* 接口 android.os :提供了系统服务、消息传输、IPC 机制 android.opengl :提供OpenGL 的工具 android.provider :提供类访问Android 的内容提供者 android.telephony :提供与拨打电话相关的API 交互 android.view

android-async-http框架库使用基础

人盡茶涼 提交于 2019-12-05 05:54:12
开源项目链接 android-async-http仓库:git clone https://github.com/loopj/android-async-http android-async-http主页:http://loopj.com/android-async-http/ 背景知识 开始使用分析前还是先了解下Android的HTTP一些过往趣事: 关于Android HTTP推荐的Google官方链接 HttpClient拥有众多的API,实现稳定,bug很少。 HttpURLConnection是一种多用途、轻量的HTTP客户端,使用它来进行HTTP操作可以适用于大多数的应用程序。 HttpURLConnection的API比较简单、扩展容易。不过在Android 2.2版本之前,HttpURLConnection一直存在着一些bug。 比如说对一个可读的InputStream调用close()方法时,就有可能会导致连接池失效了。 所以说2.2之前推荐使用HttpClient,2.2之后推荐HttpURLConnection。 好了,那现在话又说回来,在android-async-http中使用的是HttpClient。哎…好像在Volley中分析过Volley对不同版本进行了判断, 所以针对不同版本分别使用了HttpClient和HttpURLConnection

Android开发指南-框架主题-基础知识

谁都会走 提交于 2019-12-05 04:44:03
应用程序基础 关键类 Activity Service BroadcastReceiver ContentProvider Intent Android应用程序使用Java做为开发语言。aapt工具把编译后的Java代码连同其它应用程序需要的数据和资源文件一起打包到一个Android包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。 从很多方面来看,每个Android应用程序都存在于它自己的世界之中: 默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。 每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。 默认情况下,每个应用程序均被赋予一个唯一的Linux用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。 使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。

安卓学习-百度地图

浪尽此生 提交于 2019-12-05 02:21:17
Android Studio工程配置方法 第一步:在工程app/libs目录下放入baidumapapi_vX_X_X.jar包,在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库,放入libBaiduMapSDK_vX_X_X_X.so如下图所示,注意jar和so的前3位版本号必须一致,并且保证使用一次下载的文件夹中的两个文件,不能不同功能组件的jar或so交叉使用。 so的配置也可以参考demo给出的目录结构,如下图所示,在app工程路径下,新建libs,并在libs目录下放入对应不同CPU架构的so文件。这样工程并不会自动加载libs下的so,需在gradle编译时,通过加入代码: jniLibs.srcDir 'libs' 来说明so的路径为该libs路径。 第二步:工程配置还需要把jar包集成到自己的工程中,如图上图所示,放入libs目录下。对于每个jar文件,右键-选择Add As Library,导入到工程中。对应在build.gradle生成工程所依赖的jar文件说明,如图所示: jar的配置也可参考eclipse方法,进行以下操作: 菜单栏选择 File —>Project Structure。 在弹出的Project Structure 对话框中, 选择module, 然后点击 Dependencies 选项卡.

【Appium】Appium工作原理

自作多情 提交于 2019-12-05 01:57:10
【Appium】Appium工作原理 2017-09-13 15:28 sophia194910 阅读( 7658) 评论( 0) 编辑 收藏 参考: http://www.cnblogs.com/zhjsll/p/5698878.html 原作者写的很好,所以直接放在这里。 一、什么是Appium Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。 Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样

Android兼容性测试工具Spoon

泄露秘密 提交于 2019-12-05 01:19:37
Spoon android分布式测试工具。 简介 android众多的版本和机型给android app测试工作带来不小的挑战。Spoon通过将case分布式地执行、将执行结果更友好地展示出来,从而简化android app的测试工作。 Spoon没有开发新的测试框架,而是让已经存在的测试框架更有效。现在的测试框架,一般都是通过测试apk来驱动被测apk,Spoon可以让这些case在多台设备上同时运行。一旦测试结束,Spoon就是生成一份html报表,来展示每台设备上的执行结果。 Spoon会检测到 adb devices 命令中显示的全部设备,并在这些设备上执行case。所以我们在使用spoon时,可以插入不同的手机、平板、或者不同配置的模拟器。 插入的设备越多、越杂,那么最终的测试结果展示的信息就越多。 截图 除了单纯地跑case,Spoon还可以在case执行中,进行截图,并在结果中进行展示。在最后的结果中,我们可以看到不同设备跑一个case时的截图,来测试app的兼容性。 使用Spoon的截图功能,必须在被测app中引入 spoon-client jar包,在我们的测试代码中调用 screenshot 方法进行截图,这些截图会被打上标签。 Spoon.screenshot(activity, "initial_state"); //这里编写登陆代码 Spoon