安卓 - 技术教程文章

ionic框架对Android返回键的处理

在HybridApp移动跨平台开发中,android平台会遇到一些比较特殊并难以解决的问题,这些问题在原生应用开发中很easy, Android的返回键处理就是问题之一,假如我们要实现一个在很多App中都有的在主页按返回键弹出对话框提示用户退出应用的功能,在原生应用开发中是很容易的,只要在onKeyUp事件里面对返回键事件进行处理就可以了。按2次返回键退出应用的Java代码如下:private long exitTime = 0;@Override public boolean onKeyDown(...

Unity3D for VR 学习(1): 又一个新玩具 暴风魔镜 4(Android)

2016年伊始,有了VR虚拟现实硬件设备: 暴风魔镜4–好奇者的新玩具 . 2015年下半年的朋友圈中各种VR、AR的新闻层次不穷,搞的我也心痒痒的:好歹咱也是职业的Unity3D程序员,高大上的Oculus rift dk2咱玩不起,搞个廉价的VR产品也玩玩嘛! 故, 暴风魔镜 4刚发布就在网上预订了。 原估计春节前能到货,没有想到元旦前就到货了,高兴 — 业内良心嘛。 迫不及待玩了几天,小结如下:1 魅蓝 Note 2 + 魔镜4 的VR效果不...

android中的OnClickListener两种实现方式【代码】

android的activity点击事件中,通过OnClickListener来实现,要实现点击事件有两种方式1、通过定义一个OnClickListener的内部类来实现The example below shows how to register an on-click listener for a Button.// Create an anonymous implementation of OnClickListener private OnClickListener mCorkyListener = new OnClickListener() {public void onClick(View v) {// do something when the button is clicked} };protec...

Android 序列化对象接口Parcelable使用方法

什么是Parcelable ? Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“可打包的”了。 Parcelable 传递对象 Android序列化对象主要有两种方法: 1.实现Serializable接口,实现Serializable接口是JavaSE本身就支持的; 2.实现Parcelable接口,Parcelable是Android特有的功能,效率比实现Serializab...

Android开发之常用的时间格式

/** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */ public static Date getNowDate() { Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = formatter.format(currentTime); ParsePosition pos = new ParsePosition(8); Date currentTime_2 = formatter.parse(dateString, pos); return currentTime_2; } /...

请教一下安卓手机免费阅读软件如何去下载呢

众所周知,现在在我们的生活中,手机为主,各种软件应接不暇,我们该如何选择成了首要的任务,我们也不想每种都去试试,每种都去用用的。那么下面就让我告诉你们在pdf阅读器中怎么去选择吧! 轻快PDF阅读器是一款体积小、启动速度快、阅读效果最好的PDF阅读软件。适用于安卓设备,支持随时随地查看、注释和保护PDF文件。其阅读模式也颇具个性化,提供单页模式以及书本模式,同时还接受全屏及幻灯片功能自主切换,独有的目录提取及书...

android Handler.btionMessage()与Message.obtain()的区别【图】

类概述定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作。尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。1、首先创建Handler对象:[java] view plaincopyprivate Handler mHandler = new Handler() { ...

Android多线程

第一种:用Thread类创建线程public class ThreadDemo1{ public static void main(String args[]) { new TestThread().start();//调TestThread类的start函数(从Thread类继承而来的) while(true) { System.out.println("main thread is running"); } }}class TestThread extends Thread{ public void run() { while(true) { ...

android studio 无法在可视化页面预览布局文件

Rendering Problems the following classes could not be found:android.support.v7.internal.widget.ActionBarOverlayLayout (Fix Build Path, Edit XML, Create Class) Tip: Try to build the project 解决办法:把style文件中theme改一下 在Theme.AppCompat.Light.DarkActionBar前面加上Base. 如下 <!-- Base application theme. --><style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> <!-- Custom...

RxJava 和 RxAndroid

1、RxJava 项目地址 https://github.com/ReactiveX/RxJava 2、RxAndroid 项目地址 https://github.com/ReactiveX/RxAndroid 3、RxJava 和 RxAndroid 的关系 RxAndroid是RxJava的一个针对Android平台的扩展,主要用于 Android 开发 4、RxJava和EventBus的区别? https://www.zhihu.com/question/32179258/answer/54989242 5、RxAndroid的使用方法 compile ‘io.reactivex:rxandroid:1.1.0‘ 6、如何查看RxAndroid...

Android手势识别(单击 双击 抬起 短按 长按 滚动 滑动)

对于触摸屏,其原生的消息无非按下、抬起、移动这几种,我们只需要简单重载onTouch或者设置触摸侦听器setOnTouchListener即可进行处理。不过,为了提高我们的APP的用户体验,有时候我们需要识别用户的手势,Android给我们提供的手势识别工具GestureDetector就可以帮上大忙了。基础GestureDetector的工作原理是,当我们接收到用户触摸消息时,将这个消息交给GestureDetector去加工,我们通过设置侦听器获得GestureDetector处理后的手...

[Android]_[初级]_[sdk docs reference api 文档打开慢的解决办法]

场景:1. 下载sdk时下载了docs/reference文档,文档是html形式的,因为里面带有google的相关网址,浏览器打开时会去访问这些被墙的网址,所以显示巨慢。2. 解决办法就是遍历子目录删除google相关网址,由于是android开发,就用Java实现吧.3.以下运行用时9分钟,i5双核,4G内存,开了其他东西,最新的sdk docs,android 5L.文件.Cleaner.javaimport java.io.*;public class Cleaner {public static void main(String[] args) {System.out.p...

Android消息推送的服务端

2、Android消息推送MQTT服务器采用mosquito http://mosquitto.org/PHP管理包采用phpmqttclient:https://github.com/tokudu/PhpMQTTClient 2.1、mosquito安装cd /etc/yum.repos.dwget http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-5/home:oojah:mqtt.repoyum updateyum install mosquitto 2.2、mosquito命令行使用mosquito安装主要包含三个部分:mosquitto mosquitto服务器主程序,实现了MQTT协议...

Android中使用隐藏API(大量图解)

Android SDK的很多API是隐藏的,我无法直接使用。但是我们通过编译Android系统源码可以得到完整的API。编译Android系统源码后可以在out\target\common\obj\JAVA_LIBRARIES目录可以看到它的所有API。当然对于一般情况,out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar对于我们来说就足够了。如果你还不知道如何下载Android源码,请参照《如何下载Android源码(window和Linux)》如果你想提取Android所有...

Android 编程下去除 ListView 上下边界蓝色或黄色阴影【代码】【图】

默认的情况下,在 ListView 滑动到顶部或者是底部的时候,会有黄色或者蓝色的阴影出现。在不同的版本上解决的方法是不同的,在 2.3 版本之前可以在 ListView 的属性中通过设置 android:fadingEdge="none" 来解决问题,但是在 2.3 及以上版本这中方法是无效的,这里,可以通过重写 ListView 用代码来设置模式,禁止其阴影的出现,以免影响美观。代码如下:package com.sunzn.cview;import android.content.Context; import android....

37岁程序员被裁,95%Android开发者已收藏的十大开源库,附大厂真题面经【图】

前言说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码的印象刻在了很多人的心里。与其它行业一样,凡是有高级和普通,虽然都是敲代码但也有大牛和普通之分,大牛程序员,一个人比一个团队做项目都做得快,最为出名的当属十几年前求伯君在做wps时,一个人完成了微软二十人团队没有完成的项目需求,也让wps在与微软...

Android进程间通讯之messenger

平时一说进程间通讯,大家都会想到AIDL,其实messenger和AIDL作用一样,都可以进行进程间通讯。它是基于消息的进程间通信,就像子线程和UI线程发送消息那样,是不是很简单,还不用去写AIDL文件,是不是有点小爽。哈哈。 此外,还支持记录客户端对象的Messenger,然后可以实现一对多的通信;甚至作为一个转接处,任意两个进程都能通过服务端进行通信。 与 AIDL 比较:  当您需要执行 IPC 时,为您的接口使用 Messenger 要比使用 A...

Android -- Intent【代码】

Intent Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递 Intent 来执行动作和产生事件。使用 Intent 可以激活 Android 应用的三个核心组件:活动(Activity)、服务(Service)和广播接收器(BroadcastReceiver)。显式意图 ...

Android 应用程序基础

Android应用程序是用Java编程语言编写的。Android SDK工具把应用程序的代码、数据和资源文件一起编译到一个Android程序包中(这个程序包是以.apk为后缀的归档文件),一个Android应用程序就是一个单独.apk文件中的所有内容,并且Android设备使用这个文件来安装应用程序。 安装在设备上的每个Android应用程序都生活在它们自己的安全沙箱中: 1. Android操作系统一个多用户的Linux系统,在这个系统中每个应用程序都是一个不同...

Android设置ListView分隔线边距【代码】

Use ‘inset‘.....(list_divider.xml)<?xml version="1.0" encoding="UTF-8"?><inset xmlns:android="http://schemas.android.com/apk/res/android"android:insetLeft="50dp"android:insetRight="50dp"><shape><solid android:color="@color/orange"/><corners android:radius="2.0dip"/></shape></inset>and in your list view add like this...<ListViewandroid:dividerHeight="2dp"android:divider="@drawable/list_divider".....

探索Android中的Parcel机制(上)

一.先从Serialize说起 我们都知道JAVA中的Serialize机制,译成串行化、序列化……,其作用是能将数据对象存入字节流其中,在须要时又一次生成对象。主要应用是利用外部存储设备保存对象状态,以及通过网络传输对象等。 二.Android中的新的序列化机制 在Android系统中,定位为针对内存受限的设备,因此对性能要求更高,另外系统中採用了新的IPC(进程间通信)机制,必定要求使用性能更出色的对象传输方式。在这种...

Android中MediaMuxer和MediaCodec用例 - audio+video【图】

在Android的多媒体类中,MediaMuxer和MediaCodec算是比较年轻的,它们是JB 4.1和JB 4.3才引入的。前者用于将音频和视频进行混合生成多媒体文件。缺点是目前只能支持一个audio track和一个video track,而且仅支持mp4输出。不过既然是新生事物,相信之后的版本应该会有大的改进。MediaCodec用于将音视频进行压缩编码,它有个比较牛X的地方是可以对Surface内容进行编码,如KK 4.4中屏幕录像功能就是用它实现的。 注意它们和其它一些多...

bsh for android : URL Connect Test

beanshell : URLConnectTest.bshsource("/sdcard/com.googlecode.bshforandroid/extras/bsh/android.bsh"); a = Android();urlName = a.call("dialogGetInput","Connect Test","Input URL:").get("result"); print(urlName); try {URL url = new URL("http://"+ urlName);URLConnection conn = url.openConnection();conn.connect();Scanner in = new Scanner(conn.getInputStream());Map headers = conn.getHeaderFields();for (M...

基于Android 班费管理App的设计与实现【图】

==有兴趣的小伙伴可添加QQ或评论留言交流== 主要功能:本App包含两种角色即:学生端和班费管理员+服务端**服务端:主要是用来处理数据,即增删改查,服务端整体框架使用Java的servlet搭配mysql数据库实现,也相对精简**App端主包含如下功能:1、登录、注册 (服务端sevlet+mysql数据库)2、支持两种角色登录,所使用的功能权限不同即班费管理员可以发布班费动态,其它人只能查看3、分为班费动态和个人中心两大模块4、班费动态,顶部...

Android混淆代码

Android代码混淆是必须的,java层代码如果不做混淆等于把源代码送人了。那如何做混淆呢?之前一般都是提到采用proguard.cfg,但使用新版本ADT后没有这个文件了,取而代之的是proguard-project.txt文件。那该如何使用呢?在项目根目录下有个project.properties,里面有如下内容:# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}...

Ionic发布成android

目前环境1、ant的版本是1.9.42、jdk的版本是1.73、ionic安装版本是1.5.54、cordova版本是5.1.1经测试,虽然ionic上面写的支持的最低版本是android-16,但是我发布的时候最低支持android-17,android-16每次都 编译失败,不知道是不是环境的问题。 修改android的发布版本需求修改如下文件中的targetSdkVersion:1、platforms\android\AndroidManifest.xml2、platforms\android\project.properties3、platforms\android\CordovaLib\An...

Android:Drag and Drop的应用

最近看了下Drag and Drop部分的原文,觉得很有意思就像自己试着做一下,说实在的原文真的是不好读啊,要感谢那些为我们发表译文的大神们,真的是不容易,原文中给了例子,但是只有后面零星的代码,真的是不知道怎么用,索性就搜了下原文翻译,顺便看看有没有人实现出一个例子什么的,只可惜译文多得很就是没人做出一个可以参照的例子,无奈自己就根据文章意思改了改代码,终于是能用了,但是不知道用的对不对,在这分享一下,也想看...

Android Studio 中提示 Private field 'mType' is assigned but never accessed 的原因

寒假学习 第22、23天 (linux 高级编程) 笔记总结一、基于内存的通信一组内核共享工具ipcs 可以看到三段东西Shared Memory Segments 共享内存Semaphore Arrays 信号量数组,共享内存数组Message Queues 共享消息队列ipcrm 1.普通的父子进程之间的匿名内存共享映射2.内核共享内存(无序) 编程模型: (1) 创建共享内存,得到一个ID shmget函数 int shmge...

win8.1 64位环境搭建android开发环境【图】

1.下载JDK,http://www.oracle.com/technetwork/java/javase/downloads/index.html,选择版本2.安装刚刚下载的JDK3.环境变量配置, 新建JAVA_HOME系统变量:C:\Program Files\Java\jdk1.7.0_65(JDK安装目录) 新建CLASS_PATH系统变量: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 注意前面是 .; 补充path环境变量:%JAVA_HOME%\bin;%JAVA_HOME%l\jre\bin;4.验证环境变量是否配置正确,在dos界面运行java -version出现...

安卓微博客户端 第二天 系统主框架的搭建【代码】【图】

从上次更博到今天过了三天了,并不是因为偷懒了,而是这一课的内容对于基础较差的我来说信息量有点过于大了,隔了这么久才勉勉强强把它吃掉。那么废话不多说,直接进入今天的内容吧。  首先先看一下到目前为止的UI效果图:  除了下面多了一个“Welcome to Sina”的TextView,也没什么变化呀。哈哈,那你就错了,上次我们这两个按钮是点不动的,这次都有各自的功能了,先输入用户名和密码点下登录试试。  嗯,各位没有看错,就...