Android
小马工匠坊
飞速的计算机世界也需要宁静的工匠精神。
展开
-
android 开发中获取versionName和versionCode
android studio中gradle文件和manifest中都有对于versionName和versionCode的配置。经过实践发现使用PocketManager get PocketInfo中的versionName是gradle配置的,查阅官方文档发现gradle中的配置在build的时候会覆盖manifest中的。To define the version i原创 2016-09-07 13:37:47 · 3461 阅读 · 0 评论 -
Android官方mvp说明——Android架构蓝图——android Architecture Blueprints
Android框架在定义怎样组织和架构androidapp的时候,提供了很多的灵活性。这个自由,非常的有价值,可以使得app及时使用了很大的类,可以让命名和架构不会使得测试,维护,和拓展造成困难。Android Architecture Blueprints 展示了解决常见问题的可能方法。在这个项目中我们使用了不同的概念和工具来构架了同一个应用。你可以把这些例子看做是参考或者你翻译 2016-07-14 10:11:20 · 1776 阅读 · 0 评论 -
Grid View 网格视图——翻译自developer.android.com api guides
grid view是一种viewgroup,它用两个维度显示对象,可以滚动的网格。网格的实体会自动使用ListAdapter插入到布局中。翻阅一个介绍怎样使用adapter来动态插入views的介绍,请阅读Build Layouts with an Adapter。例子在这个教程里面,你会创建一个图片的缩略图的grid。当一个item被选中的时候,一个toa翻译 2016-06-16 11:10:43 · 987 阅读 · 0 评论 -
输入控制——Buttons——翻译自developer.android.com
按钮包含了用来指示按下去会发生什么的图标和文字。根据你时候需要显示文字,图标或者二者都要,你可以用下面三种方式来创建你写的布局。-显示文字,使用button类: android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/翻译 2016-06-13 23:32:49 · 710 阅读 · 0 评论 -
View动画 View Animator——翻译自developer.android.com
你可以使用view动画来实现view间的间补动画。间补动画使用起始点,结束点,大小,旋转以及其他的其他的动画的典型的参数来计算动画。一个间补动画可以运行一系列的简单的变形在view对象的内容上,比如位置,大小,旋转和透明度。所以,胶乳你有一个textView的对象,你可以移动,旋转,放大和缩小。如果他有一个背景图片,那么背景图片也会随着改变。animation package 提供了在间补动画中用翻译 2016-06-28 14:25:24 · 818 阅读 · 0 评论 -
动画和图形一览——翻译自developer.android.com API Guides
中国的技术博客里面,大多数的作者,代码间的变量引用都透露着浮躁。我们的目的性太强了。stackoverflow里面的氛围如同知乎,甚至比知乎更加朴实和冷静。我们好需要很多成长,和大环境的成熟。使用Android有力的图形功能比如说OpenGL以及硬件加速,以及内置的UI动画。来让你的app看起来和表现的最好。博文android4.0图形和动画今天早些时候 ,andorid3翻译 2016-06-27 15:50:17 · 625 阅读 · 0 评论 -
Android使用VideoView播放网络视频,获取网络视频缩略图
Android使用VideoView播放网络视频,获取网络视频缩略图`/** * 本实例演示如何在Android中播放网络上的视频,这里牵涉到视频传输协议,视频编解码等知识点 * @author Administrator *Android当前支持两种协议来传输视频流一种是Http协议,另一种是RTSP协议 *Http协议最常用于视频下载等,但是目前还不转载 2016-06-27 14:01:51 · 3779 阅读 · 1 评论 -
两个view间淡入淡出 Crossfading Two Views——翻译自developer.android.com Training
淡入淡出动画,也叫作溶解,他可以逐渐地隐藏一个ui组件,同时逐渐地显示另一个。这个动画适合于你在app中想要切换两个view的内容的时候。淡入淡出动画十分的精巧和短小,但是有一个流畅的从一个屏幕变换的另一个屏幕的效果。如果你不适用它的话你的变换会感觉到生硬和唐突。下面是一个进入指示器到文字的淡入淡出的例子。https://developer.android.com/training/ani翻译 2016-06-27 13:56:50 · 683 阅读 · 0 评论 -
Android SDK 国内镜像
Android SDK 国内镜像 东软信息学院的 Android SDK 镜像,比配置代理下载快多了。配置地址, http://mirrors.neusoft.edu.cn/configurations.we#android启动 Android SDK Manager ,打开主界面,依次选择「Tools」、「Options...」,弹转载 2016-05-23 17:49:35 · 668 阅读 · 0 评论 -
Layout布局——翻译自developer.android.com
布局位置view的几何形状是对应的矩形。view是有位置的,使用左和上的一对数值坐标表示,以及宽度和高度两个维度。位置和维度的单位是像素。可以通过调用getLeft和getTop两个函数来获取view的位置。前者返回view对应 的矩形的左或者x坐标。后者返回对应矩形的上,或者y坐标。这两个方法返回都是相对于父view的位置。例如getLeft方法的返回值为20,着意味着view距翻译 2016-06-08 23:33:21 · 2254 阅读 · 0 评论 -
使用SoundTouch开源库开发android手机上的音乐bpm检测应用
前一段时间要做一个自动匹配与跑步节奏相适应的音乐播放器的应用。找了很久发现了十分良心的soundtouch开源库。这个应用的步频判断部分是使用pedometer开源应用进行提取改造的。具体可以参考我相关的博客。一、关于SoundTouch开源库下面为官网,可以进行参考。http://www.surina.net/soundtouch/index.html该库主要提供原创 2016-06-08 22:54:45 · 10546 阅读 · 5 评论 -
android调用系统文件浏览器获得uri或者文件路径
基本思路:1.使用隐式intent和startActivityforResult开启系统文件浏览器。2.使用onAcitivityRsult方法接受返回的 intent,取出其中包含的uri(注意这不是文件路径,但是和文件路径可以相互转化)。3.下面注释的就是其中的获取文件路径的代码。要注意根据你选择的文件类型修改MediaStore.后面的内容。也就是把Image换成音频或者其他的。原创 2016-06-08 18:53:17 · 4940 阅读 · 0 评论 -
文件路径和Uri
一、Uri 通用资源标志符(Universal Resource Identifier, 简称"URI")。 Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。 URI一般由三部分组成: 访问资源的命名机制。 存放资源的主机名。 资源自身的名称,由路径表示。 A转载 2016-06-07 17:14:37 · 1200 阅读 · 0 评论 -
创建一个内容提供者Creating a Content Provider——翻译总结自developer.android.com
前言content provider提供了一种访问结构化数据的方式。他通过封装数据进行安全的数据访问。content provider是跨进程访问数据的标准接口。当你想访问content Provider的数据的时候,使用Context对象中的ContentResolver对象。这个对象和content provider的一个对象进行交互。provider对象接收客户端的查询等请求,并返回翻译 2016-05-07 16:25:34 · 1926 阅读 · 0 评论 -
每日总结——2016年7月26号
1.AsyncTask的使用重点1.基本流程:继承AsyncTask2.执行exceute方法,其中传入参数,参数将会传入到doInBackgound中作为参数。3.onPostExecute和onPreExecute分别对应onInBackground之前和之后。4.onInBackgound中调用publishProgress()来向主线程提供进度消息。同时onProg原创 2016-07-26 16:36:40 · 607 阅读 · 0 评论 -
分享简单的数据 Share Simple Data 翻译自developer.android.com
android应用程序的一个强大功能就是彼此的沟通和融合。当你的应用在已经准备好和另一个应用交互的时候,为什么不不在你的app中添加这个核心功能呢?这节中讲了一下在应用之间分享数据的常用方法,比如使用Intent API或者 ActionProvider API来发送和接受数据。向其他应用发送简单的数据当你构造一个intent,你需要指定intent会触发什么。andr翻译 2016-07-05 10:16:04 · 903 阅读 · 0 评论 -
FrameLayout——帧布局 翻译自developer.android.com sdk
FrameLayout是设计用来封锁屏幕的一块区域来 显示一个单独的项目的。通常而言,FrameLayout被用来显示一个单独的子view,因为想要让子view不相互重叠的情况下,测量不同大小的屏幕来显示的方法是身份困难的。但是你可以在FrameLayout中放置多个子view,通过设置gravity属性来控制他们在FrameLayout中的位置,这个属性是android:layout_gravi翻译 2016-06-20 10:38:38 · 561 阅读 · 0 评论 -
BroadcastReceiver在Activity中注册则要在其中注销
BroadcastReceiver在Activity中注册则要在其中注销否则会报错09-06 19:20:25.281 4952-4952/com.segway.robot.client E/ActivityThread: Activity com.segway.robot.client.update.view.UpdateInfoDialogActivity has leaked Int原创 2016-09-06 19:57:56 · 1633 阅读 · 0 评论 -
Wifi P2P 翻译自developer.android.com——API Guides
WifiP2P允许Android4.0以及以上的设备,通过wifi直接和其他设备相连,而不需要中继网络(Android的wifi p2p框架使用了Wifi Alliance的认证的程序)。使用这些API,你可以发现和连接其他使用Wifi P2pd的设备,,并且通过一个高速的连接进行通信,它的速度远远高于蓝牙连接。这对于要分享数据给其他应用的app来说十分有用,比如说多玩家游戏,或者分享照片的应用。翻译 2016-08-12 14:42:16 · 1379 阅读 · 0 评论 -
Android 手势识别的理解
一个Activity实现OnGestureListener接口。创建一个GestureDetector传入this,即这个OnGestureListener接口。接下来系统就会在发生手势事件的时候调用OnGestureListener中的手势回调方法了。这里关于GestureListener有一个理解的问题。Listener对象是对事件发生以后要执行的事情进行重写。是实现要原创 2016-08-24 10:13:44 · 571 阅读 · 0 评论 -
使用网络服务发现(无线连接设备)——翻译自developer.android.com-Trainning
在你的app中添加网络服务发现功能可以让你的app发现局域网当中的其他设备,来支持你的app所需要的功能。这个功能对于很多的app都很有用,比如说,多人的游戏。Android的NSD API大大简化了你使用这些功能的麻烦。这节课教你怎样在局域网中广播你的名字和功能以及发现局域网中其他设备的广播。最后我们将实现连接到其他设备中的同样的app。在你的网络中注册一个服务提示:翻译 2016-08-09 16:57:37 · 1201 阅读 · 0 评论 -
创建点对点WiFi直连——翻译自developer.android.com Training
wifi p2p api可以让设备和身边的设备相连接,而不需要网络或者热点。android的wifi p2p框架使用了wifi-direct认证的程序。wifi p2p让你的应用快速找到并连接周围的设备,与之教育,这个范围要比蓝牙更广。这节课教你怎样使用wifi直连来找到和连接周围的设备。建立应用的权限要使用wifip2p,需要在manifest中添加权限CHANGE_WIFI翻译 2016-08-09 10:42:59 · 1395 阅读 · 0 评论 -
再次图文理解Android 中Activity的启动模式
先介绍名词:任务栈Task。任务栈具有聚合性。后台一个个看到的都是任务栈。任务栈中的一个Activity迁移,会使得整个任务栈迁移。先说比较难的:一.Single Task顾名思义,Single Task是“单一栈”。先检查要启动的Activity是否在某个栈中有实例,如果没有则在新的栈中启动,如果有就在原来存在的栈中启动。在原来的栈中启原创 2016-08-17 09:00:47 · 568 阅读 · 0 评论 -
浅析Android系统中HTTPS通信的实现
浅析Android系统中HTTPS通信的实现这篇文章主要介绍了浅析Android系统中HTTPS通信的实现,实现握手的源码为Java语言编写,需要的朋友可以参考下前言最近有一个跟HTTPS相关的问题需要解决,因此花时间学习了一下Android平台HTTPS的使用,同时也看了一些HTTPS的原理,这里分享一下学习心得。HTTPS原理HTTPS(Hype转载 2016-03-25 10:24:17 · 2507 阅读 · 1 评论 -
检测一般的手势Detecting Common Gestures——翻译自developer.android.com Training
当你把一个或者过个手指放在屏幕上的时候就会产生一个触摸手势,你的应用会会把你的触摸的模式翻译成一个特别的手势。下面手势检测中的两个相应的阶段:1.搜集触摸事件的数据。2.翻译这个数据,来查看是否符合app支持的某个手势的类别。支持的库类这个案例中使用的类是GestureDetectorCopat和MotionEventCompa类。这些类都是在支持库当中的。如果你要兼容androi翻译 2016-06-23 20:05:59 · 609 阅读 · 0 评论 -
GridView中 反复调用getView
引用篇文章。讲的很好,作者是个好老师:http://blog.csdn.net/chenxin_003/article/details/49006301检查你的GridView布局里面有没有会导致频繁计算的东西。在我的代码里面吧上边的标题设置了weight为1,下面的gridView 的weight 为5导致了,数量不定的gridview无法同时满足weight中和标题的比例。将w原创 2016-07-29 13:04:29 · 1011 阅读 · 0 评论 -
高效率地显示位图(总课程绪论)Display Bitmaps Efficiently——翻译自developer.android.com Training
这节课学习如何使用典型的办法来运行和加载Bimap对象,使得我们的UI组件保持相应并且不会内存溢出。如果你不小心,位图会很快就消耗掉app预算的内存,导致可怕的异常:java.lang.OutofMemoryError:bitmap size exceeds VM budget.为什么在android应用中加载图片需要一些技巧,下面列举了一些原因:- 移动设备通常的可以资源都十分有限。an翻译 2016-06-21 21:07:39 · 546 阅读 · 0 评论 -
高效率地加载位图Loading Large Bitmaps Efficently——翻译自developer.andoid.com Training
图像有各种各样的大小。很多时候图像都比我们需要的交互界面要打。例如系统图库中显示的图片,他们的分辨率要远远大于屏幕的分辨率。你可以使用内存是有限的,你希望加载一个低分辨率的相片版本到内存中。低分辨率版本应该和显示他的ui组件相适应。一个高分辨率的图片在这是在视觉上不会有任何的提升,而仍然会占用宝贵的内存资源,并且产生多余的性能开销,源自于多余的频繁的缩放。这节课向你展示怎样翻译 2016-06-21 20:49:57 · 622 阅读 · 0 评论 -
InputEvent 输入事件——翻译自developer.android.com API Guides
在android上,有多重拦截用户和app交互的的事件的办法。当考虑ui中的事件的时候,捕获事件的方法是从ui交互的特定的view对象来获取。view类提供了这些方法。你可以使用多种多样的view来组成的你的ui布局,你可能注意到了有很多的共有的回调方法可以用来处理ui事件。这些方法在有对应的事件的时候回被android框架进行调用。例如,当你可以view(比如说button )被按下的时候,翻译 2016-06-20 14:48:38 · 707 阅读 · 0 评论 -
App组件之服务Service——翻译自developer.android.com
服务ServicesService是一种应用组件,它可以在后台长时间地运行并且没有用户界面。其他的应用组件可以启动一个service,并且这个service会一直在后台运行下去,不论用户是否切换到了其他的应用。另外,其他的组件可以绑定一个service来进行交互,甚至进行跨进程通信(IPC)。例如服务可以处理网络传输,播放音乐,处理文件IO,或者和content provider进行交互,这些翻译 2016-04-22 16:02:54 · 2527 阅读 · 0 评论 -
完美解决Linux(Android)操作系统下aes解密失败的问题
完美解决Linux操作系统下aes解密失败的问题作者: 字体:[增加 减小] 类型:转载 时间:2013-08-28 我要评论以下是针对在Linux操作系统下关于AES解密失败的问题进行了详细的分析介绍,需要的朋友可以过来参考下现象描述:windows上加解密正常,linux上加密正常,解密时发生如下异常:复制代码代码如下:javax转载 2016-05-31 00:22:02 · 2601 阅读 · 1 评论 -
内容提供者基础 Content Provider Basics——翻译自developer.android.com
#内容提供者基础 Content Provider Basicscontent provicer 管理着中心数据仓库的访问。一个provider是Android的应用的一部分,它可以提供数据工作的UI。然而,content provider基本都是被其他的应用访问,使用一个provider客户端对象来访问provider。provider和provider client一同创立了一翻译 2016-05-05 22:29:03 · 2229 阅读 · 0 评论 -
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity
android.util.AndroidRuntimeException: Calling startActivity() from outside of an ActivityCaused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity contex转载 2016-02-27 23:35:56 · 757 阅读 · 0 评论 -
如何判断android activity是否运行
android对于我们来说是一个复杂的且拥有多种逻辑类别的系统。这对于我们来说是一件好事但是也给我们带来处理一个相同问题会带来更多的复杂性。接下来我们会检查activity是否在你的应用中存在 介绍我们会需要一个持续运行的服务,这个服务会从远程站点获取信息或者做类似事情来给我们带来一些特殊利益。在当时我这个服务获取到一些信息并传送到activity中。如果这个activit转载 2016-02-27 16:20:08 · 7899 阅读 · 0 评论 -
android中“后台”更新Activity的办法(application handler和BroadcastReceiver)
转自:http://blog.csdn.net/jason0539/article/details/18075293 第一种方法:遇到一个问题,需要在一个activity中控制另一个acitivity做一些更新,没想到传递handler的方法,通过以下方式解决。1.在MyAPP中定义属性handler123转载 2016-02-26 16:09:54 · 2569 阅读 · 0 评论 -
关于Android 中的Activity,Application和Task
什么是Android Application?简单来说,一个apk文件就是一个Application。任何一个Android Application基本上是由一些Activities组成,当用户与应用程序交互时其所包含的部分Activities具有紧密的逻辑关系,或者各自独立处理不同的响应。这些Activities捆绑在一起成为了一个处理特定需求的Application, 并且以“.转载 2016-02-26 16:03:41 · 1467 阅读 · 0 评论 -
Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)(转载)
转载自http://blog.csdn.net/vipzjyno1/article/details/25248021 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适转载 2016-02-26 13:19:56 · 1042 阅读 · 0 评论 -
Android Voip再次总结 关于数据流的加密和解密
使用jni的函数加密以后,byte数组的长度会发生变化。例如我这里640B的音频包,在对称加密以后获得的byte长度这里编程了648B。也就是说在接收的时候截取数据要按照加密以后的数据长度。在解密以后会恢复到原来的长度。这里要再次get一下长度传入播放函数。这里使用的学长开发的加密解密函数是“配对的”。也就是说如果不是他的pair函数加密的数据,传入以后解密会发生错误。原创 2016-03-11 12:11:51 · 1040 阅读 · 0 评论 -
android-Service和Thread的区别(转载)
android-Service和Thread的区别1.服务不是单一的进程。服务没有自己的进程,应用程序可以不同,服务运行在相同的进程中。2.服务不是线程。可以在线程中工作。一.在应用中,如果是长时间的在后台运行,而且不需要交互的情况下,使用服务。同样是在后台运行,不需要交互的情况下,如果只是完成某个任务,之后就不需要运行,而且可能是多个任务,需需要长时间运行的情况下使用线程。二.如果任务占用CPU时转载 2016-02-23 15:54:23 · 559 阅读 · 0 评论 -
Android Service 的两种启动方法
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都 可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服 务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止转载 2016-02-23 15:42:31 · 730 阅读 · 0 评论