
In 未分类 on 2015年07月07日 by TAT.iptton view: 3,180
2

In 未分类 on 2014年10月14日 by TAT.zhipingfeng view: 26,763
6
前言
Facebook 在 2015.9.15 发布了 React Native for Android,把 JavaScript 开发技术扩展到了移动 Android 平台。基于 React 的 React Native 让前端开发者使用 JavaScript 和 React 编写应用,利用相同的核心代码就可以创建 基于 Web,iOS 和 Android 平台的原生应用。在 React Native for Android 出来之后,本人花了些时间从环境搭建到做出几个 demo,从体验来看都挺流畅,具体将此间遇到和问题和具体的新的体会,向大家分享一下。
Event-driven programming for Android
Andoird 中事件驱动编程
https://medium.com/google-developer-experts/event-driven-programming-for-android-part-i-f5ea4a3c4eab
(This is the first article in a three-part series) (本文是系列文章中的一部分)
Although Android includes some event-driven features in its development, it is far away from being a pure event-driven architecture. Is this something good or bad? As in every issue with software development the answer is not easy: it depends.
虽然 Android 已经包含了若干事件驱动特性,但其离纯正的事件驱动架构还有一定的距离。这到底是好事还是坏事呢?和多数软件开发问题的答案一样:看情况。
相信 volley 绝大部分做 android 的人已经知道了,关于 volley 的使用网上也是一抓一大把,都是说 volley 如何如何好用,下面分享下自己在使用 volley 过程中踩过的坑。
volley 好用的一个原因是封装的 api 看起来也比较直接,但是其回调的 api 做的是一般般,其中有一个 JsonObjectRequest 类,网上的使用说明也一大把,基本上都是最简单的情形:
Get 请求示例:
1 2 3 4 5 |
在开发sdk生成jar在eclipse里相对比较容易操作,只要导出class时指定哪里导出就可以, 但在用AndroidStudio开发时要导出jar就没那么容易,需要写gradle脚本,但gradle脚本 的入门成本还是比较高,网上也有打包jar的脚本参考,但大多是通过生成classes.jar重命名 来生成,这样生成的jar是包含工程里所有类的,有时我们需要指定一些包和类来生成jar。 下面是参考脚本: |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
task clearJar(type: Delete) { delete 'libs/sdk.jar' } task makeJar(type:org.gradle.api.tasks.bundling.Jar) { //指定生成的jar名 baseName 'sdk' //从哪里打包class文件 from('build/intermediates/classes/debug/org/cmdmac/cloud/pluginsdk/') //打包到jar后的目录结构 into('org/cmdmac/cloud/pluginsdk/') //去掉不需要打包的目录和文件 exclude('test/', 'BuildConfig.class', 'R.class') //去掉R$开头的文件 exclude{ it.name.startsWith('R$');} } makeJar.dependsOn(clearJar, build) |
1 |
在build.gradle写上后,只要在命令行执行gradle makeJar就可以在build/libs目录下找到这个jar |
上面是个简单的例子,只能打包某个包下面的所有文件,如果要实现只打某个包下面的某些子包或者文件可参考如下示例:
1 2 3 4 5 6 7 8 9 10 11 |
task makeSdkJar(type:org.gradle.api.tasks.bundling.Jar) { baseName 'pluginsdk' //只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不会被打包进去 from('build/intermediates/classes/debug/org/cmdmac/') { include 'pluginsdk/impl' include 'gamecenter' } into('org/cmdmac/') // exclude('R.class') // exclude{ it.name.startsWith('R$');} } |
假设我们要做一个效果,界面最顶部是一个 ActionBar 并且是半透明的,ActionBar 下面是一个 ListView,在初始状态下,ListView 是 top 是在 ActionBar 的 bottom 位置的,但当 ListView 滚动的时候可以透过 ActionBar 看到下面的 ListView 的内容。如下面两张图所示:
关于插件,已经在各大平台上出现过很多,eclipse 插件、chrome 插件、3dmax 插件,所有这些插件大概都为了在一个主程序中实现比较通用的功能,把业务相关或者让可以让用户自定义扩展的功能不附加在主程序中,主程序可在运行时安装和卸载。
在 android 如何实现插件也已经被广泛传播,实现的原理都是实现一套插件接口,把插件实现编成 apk 或者 dex,然后在运行时使用 DexClassLoader 动态加载进来,这里分享一下 DexClassLoader 加载原理和分析在实现插件时不同操作造成错误的原因。
现在移动端已不仅仅局限于文本、图片这些 pc 平台上的常见信息类型,语音的使用愈见频繁,于是前段时间萌生了个想法:如果在移动端对语音内容做处理,提取特征出来构建关键词库是否可以对这些语音进行分类、搜索,于是花了一段时间研究 android,本文从音频的录制、处理来记录总结,识别下篇放上。
一、 音频系统的架构
安卓系统里的音频模块可划分为几层:硬件、驱动、硬件抽象层、硬件与 java 库之间的 “中介”、Framework(供 app 调用的接口都封装在这层)、实际用户可视的 app。
二、 语音录制
通常情况下,做移动开发时,如果要向后台请求数据,都会直接使用 TCP 通信。但实际上一来 HTTP 比 TCP 简单易用多了,二来有很多现有 CGI 如果要进行改造得花很大功夫。还是会有使用 HTTP 请求来拉取数据。
Copyright © 2011-2021 AlloyTeam. All Rights Reserved. Powered By WordPress
粤ICP备15071938号-2