android开发

Android之TextView控件的学习

假如想象 提交于 2020-03-30 06:23:04
<TextView android:id="@+id/tv" //id号,指明这个TextView的唯一身份 android:autoLink="phone|web" //电话或者网站的超链接,在字体里由电话号码的话,就会有有链接,有网址也会有超链接 android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="20sp" //字体大小的设置 android:textColor="#00ff00" //字体颜色的设置 android:text="@string/hello" /> //跳转到string.xml--》hello中,显示字体菜单及字体内容 <string name="hello">Hello World, https://www.taobao.com!</string> <string name="app_name">HelloWorld</string> 在主函数中也可以这样显示字体,在oncreate()函数下添加以下语句 TextView tv=(TextView)findViewById(R.id.tv); tv.setText(Html.fromHtml("欢迎大家收看<font color = red>《Android开发从零开始》<

Android 应用程序签名

烂漫一生 提交于 2020-03-30 04:44:29
本文主要介绍 Android 应用程序签名的相关理论知识以及怎样公布 Android 应用程序。 1. 签名的概念 为大家所熟知的日常生活中的签名,它是代表某个人的特殊标记,用于唯一标识某个人。而 Android 应用程序的签名的本质与日常生活中的签名是一样的,应用程序中的签名也开发人员在应用程序中打上的一种特殊标记。别人在看到这个标记时,他会知道是这个应用程序与你有关或者是你开发的,而不是别人。 2.Android 应用程序一定要签名吗 是的, Google 公布的 Android 系统要求每一个公布的应用程序都必须签名。 Android 应用程序的签名是用来建立程序的开发人员与程序包之间的信任关系,当更新应用程序时, Android 系统要求新 / 旧两个应用程序的签名必须一致。 与 windows 上签名的意义不同的是, Android 的签名不须要权威的数字证书机构认证。不会用于决定终端用户能够安装哪些应用程序。它是程序的作者自己完毕的,是 Android 系统中程序包的一种自我认证的机制。 3.Debug 签名 假设你是一个刚入门的开发人员,你会发现你开发的应用程序没有经过自己的签名也能够安装在 Android 系统的机器上,这是由于 ADT 工具使用 debug 数字证书 ( 存在于 debug.keystore) 自己主动为每一个处于开发阶段的应用程序打上了

Android开发-- The content of the adapter has changed but ListView did not receive a notification - With AsyncTask

北战南征 提交于 2020-03-30 03:20:52
最近在联系开发DaysMatter时遇到一个问题: app中使用ListView来展示所有事件,每次添加完事件后使用下面代码来更新ListView. 1 toDoListView.refreshDrawableState(); 会出现如下错误,错误内容是讲ListView的adapter必须是在UI线程中修改,不能在后台线程中修改 java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131034172, class android.widget.ListView) with Adapter(class android.widget.SimpleAdapter)] 在SO上看到一个类似的问题(http://stackoverflow.com/questions/9771017/the-content-of-the-adapter-has-changed-but

Android MP3录音实现

夙愿已清 提交于 2020-03-29 12:23:49
给APP做语音功能,必须考虑到IOS和Android平台的通用性。wav录音质量高,文件太大,AAC和AMR格式在IOS平台却不支持,所以采用libmp3lame把AudioRecord音频流直接转换成MP3格式。 声明一下,代码参考了 http://blog.csdn.net/cboy017/article/details/8455629 ,这里只是借花献佛,把整个流程写得更详细。 这里采用的是最新的lame-3.99.5.tar。 可以去Lame官网下载,博文最后也有CSDN下载地址。官网地址: http://lame.sourceforge.net/ 如果你对JNI和NDK完全不熟悉的话,请看前一篇博文 Android NDK开发之入门教程 先看一下项目文件目录: 开始Coding吧! 1 新建项目AndroidLameMP3。 2 创建JNI目录。 3 下载lame-3.99.5.tar。 解压,把子文件夹libmp3lame中的非.h和.c格式的文件删除后的剩余的所有文件和include下的lame.h放进一个新建的lame-3.99.5_libmp3lame文件夹中,最后把整个lame-3.99.5_libmp3lame文件夹拷贝到JNI目录下。 4 在com.example.lamemp3下创建MP3Recorder.class: MP3Recorder.class

Android 能够暂停的录音功能

99封情书 提交于 2020-03-29 12:17:19
Android ApI提供了MediaRecorder和AudioRecord两个类给开发者来很方便地实现音视频的录制(前者可以实现音频和视频的录制,后者只能实 现音频的录制)。这两个类都提供了start()和stop()方法用于开始和结束音频或视频的录制,但令人费解的是这两个类都没有提供pause()方 法用于暂停录制音视频,因为在实际应用当中,暂停录制的功能是非常有必要的Android 实现能够暂停的录音功能 需实现音频录制的暂停功能,并且生成的音频文件格式必须是m4a格式 为什么项目中音频文件一定要采用m4a格式的呢?有以下几点原因: 1. 录制相同时间的音频,使用m4a格式存储的文件的大小要比使用其它格式类型存储的文件的大小要小(通过实验多次,在相同采样率16000的情况下,一般录 制5分钟的音频,采用m4a格式存储的音频文件只有1.2Mb,而采用arm、mp3及其它格式的一般都有2-5Mb),这样当用户需要 下载 或上传录制的音频文件时,可以节省流量,并且相同压缩率的前提下,m4a格式音频的音质相比其它格式的也更高; 2.产品同时拥有Android客户端和IOS客户端,那为了避免使用Android客户端的用户录制的音频上传到服务器之后,使用IOS客户端的用户下 载下来发生无法播放的问题,我们需统一录制音频的存储格式

Android 关于录音文件的编解码 实现米聊 微信一类的录音上传的功能

半腔热情 提交于 2020-03-29 12:16:01
最近老大要求做一个类米聊的app,于是就去找解决方案,首先用Android本身的MediaRecorder肯定是不行的,只支持amr,wav,acc,如果要做到Android,Iphone,pc通用的话,这些格式是行不通的,而且在文件大小上尽可能越小越好。那么就只能找第三方编解码库咯。   首先,我去找了同类的软件,像talkbox,微信,米聊,还有很多copy的软件。个人比较喜欢米聊,但是面对TX的强大的潜在用户基数,是任何应用都很难突破的。   talkbox Android版用的是ilbc的第三方编解码库,在iPhone上用的是caf   微信  Android版估计是amr估计转码的是交给腾讯强大的服务器了。   米聊  Android版和Iphone版用的都是speex   搜了下,目前支持的开源第三方库也就只有 ilbc和speex了   找demo吧,本人C基础很薄弱,只会看代码= = 不会写代码,所以大部分的时间只能在网上找源码,自己编译。也很难说去怎么调试,现在分享点东西,给一样命苦的程序员,大家一起研究。一起攻克它。    http://www.speex.org/downloads/ speex的官网,纠结的是,docs全是代码= = 看的眼睛疼。真是佩服那些做流媒体开发的高人,整天跟0,1混在一起,哎。    http://www.badlogicgames

Android 关于录音文件的编解码 实现米聊 微信一类的录音上传的功能

ε祈祈猫儿з 提交于 2020-03-29 12:14:29
最近老大要求做一个类米聊的app,于是就去找解决方案,首先用Android本身的MediaRecorder肯定是不行的,只支持amr,wav,acc,如果要做到Android,Iphone,pc通用的话,这些格式是行不通的,而且在文件大小上尽可能越小越好。那么就只能找第三方编解码库咯。   首先,我去找了同类的软件,像talkbox,微信,米聊,还有很多copy的软件。个人比较喜欢米聊,但是面对TX的强大的潜在用户基数,是任何应用都很难突破的。   talkbox Android版用的是 ilbc 的第三方编解码库,在iPhone上用的是caf   微信  Android版估计是amr估计转码的是交给腾讯强大的服务器了。   米聊  Android版和Iphone版用的都是speex   搜了下,目前支持的开源第三方库也就只有 ilbc和speex了   找demo吧,本人C基础很薄弱,只会看代码= = 不会写代码,所以大部分的时间只能在网上找源码,自己编译。也很难说去怎么调试,现在分享点东西,给一样命苦的程序员,大家一起研究。一起攻克它。    http://www.speex.org/downloads/ speex的官网,纠结的是,docs全是代码= = 看的眼睛疼。真是佩服那些做流媒体开发的高人,整天跟0,1混在一起,哎。    http://www

Android 模版设计模式实战

百般思念 提交于 2020-03-28 19:03:10
概念 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 模版设计模式的本质便是固定算法框架。 上面的概念中有三个要点: 父类定义方法模版 子类实现方法的某一个部分 调用以父类的方式调用 优点 在开发时,只需要考虑方法的实现。不需要考虑方法在何种情况下被调用。实现代码复用。 一次性实现一个算法的不变部分,并将可变的行为留给子类来实现。 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。 需要通过子类来决定父类算法中某个步骤是否执行,实现子类对父类的反向控制。 核心思想 代码复用,避免重复 使用 下面,让我们来介绍一个例子。假设我们需要设计一个即时聊天工具,这个工具可以显示图片、语音、文本、表情等等类型的消息。并且可以显示消息发送的状态,显示消息的时间,显示成员头像,显示成员名称。显示有哪些人读了你的消息。相信使用过 QQ 或者微信的人对这些一定都不陌生。我们暂且将这些功能称为:消息内容、消息时间、消息回执、消息状态、成员头像、成员名称。以发送端的消息显示为例,其可以长这个样子。 根据我们对 QQ 和微信的使用,可以很明显的看出,以下的部分是公有布局: 消息时间 消息回执 消息状态 成员头像 成员名称 公共操作,如点击事件

【转】Android自动化测试之MonkeyRunner MonkeyDevice MonkeyImage API使用详解 脚本编写 脚本录制回放

半世苍凉 提交于 2020-03-28 15:44:44
【内容转自】:https://blog.csdn.net/qq_30993595/article/details/80872808 MonkeyRunner简介: monkeyrunner工具提供了一个API,用于编写从Android代码之外控制Android设备或模拟器的程序。 使用monkeyrunner,你可以编写一个Python程序,安装Android应用程序或测试包,运行它,向其发送击键,截取其用户界面,并在工作站上存储屏幕截图。 monkeyrunner工具主要用于测试功能/框架级别的应用程序和设备以及运行单元测试套件,但您可以将其用于其他目的。 Monkeyrunner工具为Android测试提供了以下独特功能: 多设备控制:monkeyrunner API可以在多个设备或仿真器上应用一个或多个测试套件。您可以物理连接所有设备或一次启动所有模拟器(或两者),以编程方式依次连接每个模拟器,然后运行一个或多个测试。您也可以以编程方式启动仿真器配置,运行一个或多个测试,然后关闭仿真器。 功能测试:monkeyrunner可以运行Android应用程序的自动化开始至结束测试。您可以使用按键或触摸事件提供输入值,并将结果视为截图。 回归测试: monkeyrunner可以通过运行应用程序并将其输出截图与一组已知正确的截图进行比较来测试应用程序的稳定性。 可扩展的自动化

Android系统架构(图解)

早过忘川 提交于 2020-03-28 13:45:16
下图是 Android 操作系统的架构,架构包括 4 层,由上到下依次是应用程序层、应用程序框架层、核心类库和 Linux 内核。其中,核心类库中包含系统库及 Android 运行环境。 图1 Android 操作系统的架构 应用程序层 Android 装配了一个核心应用程序集合,包括 E-mail 客户端、SMS 短消息程序、日历、地图、浏览器、联系人管理程序和其他程序,所有应用程序都是用 Java 编程语言编写的。 用户开发的 Android 应用程序和 Android 的核心应用程序是同一层次的,它们都是基于 Android 的系统 API 构建的。 应用程序框架层 应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布它的功能且任何其他应用程序都可以使用这些功能(需要服从框架执行的安全限制),这一机制允许用户替换组件。 开发者完全可以访问核心应用程序所使用的 API 框架。通过提供开放的开发平台,Android 使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等。 所有的应用程序都是由一系列的服务和系统组成的,主要包括以下几种: 系统/服务 英文名称 说明 视图 View 这里的视图指的是丰富的、可扩展的视图集合,可用于构建一个应用程序,包括列表 (Lists)、网格 (Grids)、文本框