
android 开发高级编程
文章平均质量分 86
开发高级编程
恋恋西风
专业图像处理,CT三维可视化,三维重建,CT后处理,软件开发, 熟悉OpenSSL、VTK、ITK 等第三方库;熟悉C/C++、java、C#,Python。 专注于手术导航系统开发。
展开
-
Python + Android + Uiautomator 自动化测试(一)环境搭建 windows
一、安装 python 开发环境见:https://blog.youkuaiyun.com/q610098308/article/details/48955789二、adb环境adb环境,有AndroidSDK也就有adb的,添加到环境变量三、uiautomator测试环境搭建UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回...原创 2020-02-02 01:07:06 · 825 阅读 · 0 评论 -
Android 中AIDL的使用与理解 (一)
AIDL的使用:最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧。 首先,我们就在AS里面新建一个aidl文件(ps:现在AS建aidl不要求和java包名相同了):Android Studio 已经给我们提供了相应的工具;package ihappy.com.cn.aidldemo;// Decla转载 2017-12-26 17:35:55 · 291 阅读 · 0 评论 -
android之AIDL跨进程通信详解 (二)
背景一直以来都只是听说AIDL是跨进程的,但都由于项目中也没涉及到,所以也从来都没彻底去了解过,最近空闲下来去了解插件化开发原理,看着看着正好涉及到Ibinder以及android用到的AIDL,于是乎按图索骥一条条来探索到底是个怎么回事儿,按照读者推荐,我们就先从AIDL使用以及原理开始挖掘。前言对于跨进程,我们都知道android底层是linux,所以进程管理也是linux系统的那转载 2017-12-27 14:34:19 · 412 阅读 · 0 评论 -
android之AIDL跨进程通信详解 (三)
AIDL 如果是跨进程通信,最好做成一个jar 包,其它进程加载后可以直接使用。关于android studio 怎么做jar包,见:http://blog.youkuaiyun.com/q610098308/article/details/51693708接二,建议本地的 aidl ,可以直接把 aidl 相关的做成一个jar 包给其它app直接用;下面讲一下远端调用 aidl;创建 aidl原创 2017-12-28 14:16:45 · 301 阅读 · 0 评论 -
android6.0动态权限,以及如何同时授予多个权限,当用户禁用的后续处理
android6.0运行时权限扩展篇这里提一下,Android 6.0 蓝牙使用需要打开定位权限,否则不能使用<uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />...转载 2018-03-27 10:40:09 · 799 阅读 · 0 评论 -
关于获取 Android 前台 Activity 监听用户点击事件 Android辅助功能 Accessibility Services
Accessbility 又叫做辅助功能,是Android官方推出帮助身体不便或者操作不灵活的人来辅助操作手机应用的。当然也可以用来干一些别的事,比如自动抢红包啊,静默安装app,帮助用于开一系列权限操作等。出于项目需求,大概研究了下Accessilibity的基本用法。虽然很多手机支持辅助功能,但是由于各手机厂商定制或者自定义View,没有严格按照Google标准来,使得有些界面使用了自定义的View,导致辅助功能找不到其节点,从而使得即使有辅助功能,也不能模拟点击View操作。demo 下载。原创 2018-03-27 11:12:32 · 4138 阅读 · 2 评论 -
Android 事件全局监听(二)需要root权限 ,使用getevent监听Android输入设备文件
我们简略地分析了事件分发机制的由来,这里要说明一点,Android(或者说任何的驱动系统)都包含大量不同类型的事件,比如按键啦、轨迹球啦、鼠标啦、触摸啦、红外线啦等等等,这里为了简化问题也为了切合实际,我们只针对触摸事件进行分析,至于其他的一些杂七杂八的事件其实都很好理解就不多说了。那么在Android中一个触摸事件究竟是从何而来的呢?对事件分发稍有了解的童鞋一定知道dispatchtouchev...转载 2018-03-27 11:47:10 · 3569 阅读 · 0 评论 -
android悬浮窗口的实现
注:添加浮动窗口根据系统不同可能会有不成功。1、WindowManager介绍 全 部Android的窗口机制是基于一个叫做WindowManager实现,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一 端是屏幕,另一端就是View,直接忽视我们以前的Activity或者Dialog之类的元素。其实我们的Activity或者Diolog底层的实现 也是经过WindowM...转载 2018-03-27 14:04:59 · 1521 阅读 · 0 评论 -
MultiDex使用方法及由此导致的crash、ANR问题解决方案
总结一下就是我们可以通过自定义maindexlist来控制哪些类一定出现在main dex中,这样可以避免crash;而针对ANR还是不建议使用异步加载,合理设计和插件形式会比较合理,如果大家有其它更好的方法可以讨论。不过在ART以后,不管是classes.dex还是classes2.dex, classes3.dex在安装时就已经完成了OAT的转换了,由分包导致的ANR的可能性就小了很多。原创 2018-03-28 16:38:21 · 1977 阅读 · 1 评论 -
android之AIDL跨进程通信详解 (五) Android IBinder机制简单介绍
原理简介我们都知道android 是通过IBinder来实现IPC(Inter Process Communication)进程间通信的。。。参考:Android进程间通信(IPC)机制Binder简要介绍和学习计划借用一下:1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中2. Binder驱动程序和Service Manage...转载 2018-07-09 09:09:01 · 759 阅读 · 0 评论 -
android之AIDL跨进程通信详解 (四)AIDL中RemoteCallbackList的使用及权限验证方式
业务场景:现在要实现每新增一个员工,就通知相应的部门人员1、提供一个AIDL接口,由于AIDL中无法使用普通接口,所以提供一个AIDL接口// IOnNewPersonArrivedListener.aidlpackage com.wuc.aidltest;// Declare any non-default types here with import statementsimport ...转载 2018-07-06 13:12:10 · 1889 阅读 · 0 评论 -
如何定位Android NDK开发中遇到的错误
摘要:Android NDK中的错误定位对很多开发者来说是一件头疼的事,本文通过一个Demo程序详细讲解了NDK的错误是如何产生的,以及如何通过命令行工具定位NDK的问题所在。Android NDK是什么?Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。众所周知,Android程序运行在Dalv转载 2017-09-18 17:49:36 · 639 阅读 · 0 评论 -
Android事件分发机制(三)事件分发和消费
以下是一个例子: 假如有3个布局,Scollview A ,Scollview B,ListView C,B是A的子部局,C是B的子部局。ABC三者都是垂直滑动,那么当我触摸手机向下滑动的时候,滑动的是哪个view呢?倘若明白了Android事件分发机制,这些就很容易理解了。 以下为部分原理:(经常碰到的方法是“事件拦截”和“事件响应”)ViewGro转载 2016-07-20 14:34:51 · 687 阅读 · 2 评论 -
android 自定义组合控件 顶部导航栏
在软件开发过程中,经常见到,就是APP 的标题栏样式几乎都是一样的,只是文字不同而已,两边图标不同。为了减少重复代码,提高效率, 方便大家使用,我们把标题栏通过组合的方式定义成一个控件。例下图:原创 2015-11-26 13:50:40 · 10701 阅读 · 2 评论 -
android 二维码 扫描,生成,竖屏
最近公司有用到二维码,生成,扫描,所以学习了一下,和大家分享; demo 见下面链接,已经改成竖屏; http://download.youkuaiyun.com/detail/q610098308/8681011原创 2015-05-10 21:45:50 · 928 阅读 · 0 评论 -
Android 数据的四种存储方式
如上两种方式均能创建数据库,this.openOrCreateDatabase是对SQLiteDatabase.openOrCreateDatabase而来,如代码所见,原生的SQLiteDatabase.openOrCreateDatabase()方法第一参数要求输入绝对路劲,而所有的数据库都是储存于“data/data/应用报名/databases”目录下,所以输入完全的绝对路劲是一件重复且繁杂的工作。SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。原创 2014-09-22 16:23:44 · 763 阅读 · 1 评论 -
android下拉菜单 spinner 学习
首先看一下继承关系:public classSpinnerextends AbsSpinnerimplements DialogInterface.OnClickListenerClass Overview视图在同一时间只能显示一个子项,用户通过下拉的方式可以选择其中的一种项。该子项在 Spinner来自来Adpater 视图适配器。首先看一下效果图:原创 2015-12-04 12:57:54 · 1593 阅读 · 0 评论 -
Android Notification通知详解
Android Notification通知详解 Notification:(一)、简介: 显示在手机状态栏的通知。Notification所代表的是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。 Android3.0增加了Notification.Builder类,该类可以轻松地创建N转载 2015-12-29 21:47:58 · 623 阅读 · 0 评论 -
android 多级下拉菜单实现教程
很多App,都有二级菜单出现,但android 本身实现的菜单又比较难看;前些天我自己思想了一个,供大家学习,为方便学习,这里我只用最简单的字符串菜单,如果大家想用更复杂或好看的,可以自定义listview 的子项即可。 一.首先看一下实现思路: 1. 使用上方按钮来弹出一级菜单,如果在弹出状态,再点击隐藏; 2. 点击一级菜单子项,弹出二级菜单,二级原创 2015-12-16 22:06:22 · 10781 阅读 · 4 评论 -
Android 高级编程 RecyclerView 控件的使用
RecyclerView 是Android 新添加的一个用来取代ListView的控件,它的灵活性与可替代性比listview更好。看一下继承关系:ava.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.sup原创 2015-12-04 17:19:52 · 2391 阅读 · 0 评论 -
android L 新控件侧滑菜单DrawerLayout 使用教程
介绍drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。原创 2015-12-09 12:13:31 · 1566 阅读 · 0 评论 -
Android事件分发机制(二)30分钟弄明白Touch事件分发机制
Touch事件分发中只有两个主角:ViewGroup和View。Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。ViewGroup的相关事件有三个:onInterceptTouch转载 2016-05-10 12:26:19 · 406 阅读 · 0 评论 -
Android事件分发机制(一) Touch 事件的分发和消费机制
Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup 及其子类、Activity。方法与控件的对应关系如下表所示:Touch转载 2016-05-10 11:00:46 · 448 阅读 · 0 评论 -
Android 多点触控与简单手势(一)
现在一般的Android手机都会使用电容触摸屏最少可以支持两点触摸,多的可能是七八个,所以基本上都会支持多点触控, android系统中应用程序可以使用多点触控的事件来完成各种手势和场景需求。 Android SDK中的MotionEvent类不仅封装了单点触摸的消息,也封装了多点触摸的消息,对于单点触摸和多点触摸的处理方式几乎是一样的。需要注意的是:Android的多点触控功能需要运原创 2016-05-05 18:19:48 · 5034 阅读 · 0 评论 -
android 开发进阶 自定义控件-仿ios自动清除控件
先上图:开发中经常需要自定义view控件或者组合控件,某些控件可能需要一些额外的配置。比如自定义一个标题栏,你可能需要根据不同尺寸的手机定制不同长度的标题栏,或者更常见的你需要配置标题栏的背景,这时候,你就会考虑到你写的view的扩展性问题,通常情况下,我们可以为这个自定义的标题栏加上一些setXXX方法,供外界调用,设置其颜色、长度等属性。但是我们都知道,在使用系统控件时,我们大原创 2015-11-25 14:59:19 · 1102 阅读 · 0 评论