android框架

Android 概念补充

為{幸葍}努か 提交于 2019-11-30 22:17:52
动静态分析区别: 静态分析是指破解者利用反汇编工具将二进制的可执行文件翻译成汇编代码,通过对代码的分析来破解软件,而动态调试是指破解者利用调试器跟踪软件的运行,寻求破解的路径。计算机必须真正运行被调试的程序,通过输入测试用例,对运行情况进行分析。 加密和未加密数据包的app渗透的区别: 未加密测试和web相似,抓包,分析数据包,挖掘漏洞 加密APP的测试,会多一个逆向破解APP加解密的步骤。 APP常用工具简介: jadx-gui : 将apk文件的文件结构,代码逻辑都罗列出来 jeb : gui反编译工具,将apk文件的文件结构,代码逻辑都罗列出来。2.0版本的jeb具备动态调试功能。 apktool : 对应用进行打包和解包 apktool d [app.apk] 对apk安装包文件进行解包 apktool b [app解包后的文件夹] signapk : 可以对apk进行签名,没有签名的apk是无法安装的 java -jar signapk-jar testkey.x509.pem testkey.pk8 旧apk 新apk IDA : 多功能工具箱,静态反编译,反汇编工具,也可用来静态调试等功能,将二进制文件或apk包使用ida打开即可查看到代码逻辑 drozer : Android安全测试框架。是目前最好的Android安全测试工具之一。drozer提供了命令行交互式界面

浅谈Android五大布局——LinearLayout、FrameLayout和AbsoulteLa

…衆ロ難τιáo~ 提交于 2019-11-30 20:56:09
Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。Android的五大布局分别是LinearLayout(线性布局)、FrameLayout(单帧布局)、RelativeLayout(相对布局)、AbsoluteLayout(绝对布局)和TableLayout(表格布局)。    LinearLayout:   LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。   LinearLayout中的子元素属性android:layout_weight生效,它用于描述该子元素在剩余空间中占有的大小比例。加入一行只有一个文本框,那么它的默认值就为0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以是同为1。如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为1和2,那么第一个文本框将占据剩余空间的三分之二

Android 开发 及 编译系统

折月煮酒 提交于 2019-11-30 19:55:27
一、Android 的开发分为三个类型 移植开发移动设备系统;android 系统级开发;应用程序 可以把android 分为四个层次,从底层往上依次为: linux 内核、C/C++ 库、java 框架和java 应用程序 。 1、 移植开发移动设备 :涉及到linux 内核(包括其驱动) 2、 Android 系统级开发 : 涉及到C/C++库的开发及给上层java 框架; 指的是扩展android 的框架或者是修改bug,这方面比较少,除非有些开发移动设备的厂商,比如做gps,可以往里面加入一些自己的特定系统东西,这可能导致一些不兼容。当然也可能是简单的修复bug。 3、 A ndroid 应用程序开发 就是调用java 的框架写应用程序 ,这应该是比较主流的开发,也就是给android 系统写应用程序。 简单的从上到下,android 应用程序需要有java 框架支持,比如它要发送短信,就需要java框架,java 框架其实就是将C/C++库包装成为了一个JNI,而实现具体的功能是C/C++库最后驱动硬件完成功能,这也就是linux 内核部分。 二、开发工作入门 根据上面所述,android 开发就分为基于sdk 开发和源代码开发。 1、SDK 开发,主要是应用程序开发。 2、源代码的开发,涉及到的知识有linux 操作系统基础知识、android 底层库等知识。 三

基于图结构实现地铁乘坐线路查询

送分小仙女□ 提交于 2019-11-30 19:07:04
基于图结构实现地铁乘坐线路查询 github-python算法和flaskapp部分: repo github-android部分: repo flaskapp接口文档: 传送门 深度了解Dijkstra优化算法: 传送门 问题描述 编写一个程序实现地铁最短乘坐(站)线路查询,输入为起始站名和目的站名,输出为从起始站到目的站的最短乘坐站换乘线路。 1.采用Dijkstra算法实现,使用优先队列对性能进行了优化; 2.如果两站间存在多条最短路径,则输出其中的一条即可; 本次项目实现采用了flask作为后端提供接口服务,使用androidApp进行get请求获得数据,显示在Textview中 设计需求 确定储存地铁站文件的格式文件 (已确认使用json格式和文本格式) 确定读取地铁站数据的方式 (使用python的file打开命令) 确定获取两站点最小站点数的算法方式 进行外表封装 进行输出格式的确定 性能测试 最后结果检查 数据存储格式 stationline.txt文本为存储的地图数据文本,格式如下图所示: 使用0与1来分别表示是否需要换乘 地铁线路条数 线路x 线路x站数 站名1 是否需要换乘 站名2 是否需要换乘 ... 数据示例 2 20 曹庄 0 卞兴 0 芥园西道 0 咸阳路 0 长虹公园 1 广开四马路 0 西南角 1 鼓楼 0 东南角 0 建国道 0 天津站 1

appium---uiautomator定位方法

余生长醉 提交于 2019-11-30 18:58:36
  前面总结了7种定位方法,今天在介绍一种uiautomator方法,其实appium就是基于uiautomator框架实现的,让我们一起看下uiautomator有哪些定位方法可以使用 uiautomator是什么 UIAutomator是android的自动化测试框架,也是Android-Sdk中一个查看页面组件元素工具 uiautomator定位方法 前面介绍了常规的定位方法,这里uiautomator又提供了3种常用的定位方法,这次我们主要通过uiautomator方法进行介绍,定位的话依旧拿淘宝来做实战 通过Text方法 1、text(“text文本”) text = 'text("注册/登录")' driver.find_element_by_android_uiautomator(text).click() 2、文本比较长,可以使用textContains模糊查询定位 textContains('text文本') text1 = 'textContains("请输入手机号码")' driver.find_element_by_android_uiautomator(text1).send_keys("123456") 3、textStartsWith("以text文本开头") text2 = 'textStartsWith("请输入验证码")' driver.find

5个最佳的Android测试框架

独自空忆成欢 提交于 2019-11-30 17:38:24
谷歌的Android生态系统正在不断地迅速扩张。有证据表明,新的移动OEM正在攻陷世界的每一个角落,不同的屏幕尺寸、ROM /固件、芯片组以及等等等等,层出不穷。于是乎,对于Android开发人员而言,处理存储碎片变得越来越困窘。 不过幸运的是,Android(还有iOS)开发人员可以无限制地访问一些先进的基于云的解决方案,如Testdroid Cloud,就可以在大规模的真实设备上执行自动化测试以确保质量,赞吧。此外,不同的Android测试框架的出现也大大减轻了Android开发人员的负担。 今天,我们就要说说5款最常用的Android测试框架,并且每个框架都给出了基本的代码示例。 1.Robotium 不可否认,Robotium曾是Android世界之初使用最广泛的Android测试框架,风靡一时。由于它与Android有着相似的Selenium,所以它能够使得API的测试变得简单起来。 Robotium是一个扩展于JUnit的开源库,运用多种有用的方法来支持Android UI测试。它提供的强大的自动化黑箱测试范例,可用于Android应用(原生的和混合的)和web测试。只要源代码允许,你就可以通过Robotium写功能、系统和验收测试方案,以及测试应用。 Robotium的代码示例: // Public void for the operation public void

Android实现推送方式解决方案

雨燕双飞 提交于 2019-11-30 16:57:51
1.推送方式基础知识:   在移动互联网时代以前的手机,如果有事情发生需要通知用户,则会有一个窗口弹出,将告诉用户正在发生什么事情。可能是未接电话的提示,日历的提醒,或是一封新的彩信。推送功能最早是被用于Email中,用来提示我们新的信息。由于时代的发展和移动互联网的热潮,推送功能更加地普及,已经不再仅仅用在推送邮件了,更多地用在我们的APP中了。   当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如《地震应急通》就需要及时获取服务器上最新的地震信息。要获取服务器上不定时更新的信息,一般来说有两种方法:第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。    虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push方式比Pull方式更优越。因为Pull方式更费客户端的网络流量,更主要的是费电量,还需要我们的程序不停地去监测服务端的变化。     在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息。我们只需要在Android或IPhone的通知栏处向下一拉

Android-Hook

无人久伴 提交于 2019-11-30 15:18:08
Hook_Android Cydia HOOK 新建工程 在工程中找到 libs 文件夹,将 jar 包拷贝到文件夹中 设置 jar 包为依赖(类似在 c++中导入一个 lib,写了一个 #param comment(lib,”user32”)) 在清单文件中指定权限和入口类 <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bluelesson.cydia34"> <!-- 这句 --> <uses-permission android:name="cydia.permission.SUBSTRATE"></uses-permission>​ <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity

Android的常用adb命令

可紊 提交于 2019-11-30 15:06:01
[Android]Android的常用adb命令 第一部分: 1. ubuntu下配置环境anroid变量: 在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#set android environment 2. 运行Eclipse,还需要配置JAVA环境变量 #set java environment JAVA_HOME=/home/loginname/jdk目录名 JRE_HOME=/home/loginname/jdk目录名/jre export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=/home/loginname/android-sdk-linux_86/tools:$PATH 保存后,重启 3. 加入设备ID标识到当前的android调试环境 在/home/loginname/.android文件中添加,android终端的设备标识ID 4. 更新sdk 【android update sdk】更新sdk 5. 常用命令: 【adb help】获取帮助 【adb get-serialno】获取设备串号 【adb root】获取root权限,对部分手机有用

fir.im Weekly

依然范特西╮ 提交于 2019-11-30 14:13:27
2016年苹果发布会如期而至,新一代的 iPhone 7, Apple Watch 同时亮相,可惜大家期待的 MacBookPro、AR、VR产品并未出现。不论大家对新产品是“买买买”还是“黑黑黑”,苹果是否保有创新活力,每个人心里都有自己的答案。 本期 fir.im Weekly 推荐下 @袁峥Seemygo 的这一系列文章,教你 如何快速的开发一个完整的iOS直播app 的实践系列,还有 @陈利人 的 如何搭建一个属于自己的直播平台 ,其中解释了直播平台后面的技术和实现原理,分享给有需求的同学。 除此之外,还有一些微博热转 Github 项目、iOS/Android 开发实践等技术分享~ 打造心目中理想的自动化测试框架(AppiumBooster) 由 DebugTalk 分享。 "AppiumBooster基于 Appium 实现,更简单和易于使用;测试人员不用接触任何代码,就可以直接采用简洁优雅的方式来编写和维护自动化测试用例。" 对于 自动化测试用例有疑惑的,请点击 这里 看看作者的解决方案。 CI Weekly #1|带你了解 CI/CD 、DevOps、自动化测试 CI Weekly 围绕『 软件工程效率提升』 进行技术内容分享,收录了关于 iOS/Android 的自动化测试,持续集成、部署等技术干货,感兴趣的可以关注订阅。 传送门 . Android-Dev