
APP-Android
文章平均质量分 83
Android
猿来这样1
编程圈子,谢厂节的博客
展开
-
安卓 Handler 机制学习
安卓 Handler 机制学习一、一些基本概念1. Handler机制的目的:2. handler与thread3. handler的message处理二、Handler机制组成部分1. message2. Handler3. MessageQueue 消息队列4. Looper 循环器三、 Handler的工作流程四、Looper方法1. prepareMainLooper()2. Looper.prepare()方法3. myLooer()方法4. Looper.loop()方法五、MessageQue原创 2022-04-13 16:01:03 · 599 阅读 · 0 评论 -
安卓蓝牙开发 1. 发现过程
安卓蓝牙开发 1. 发现过程一、基本概念二、 蓝牙发现三、相关API四、发现的过程1. 启用权限2. 获取BluetoothAdapter3. 判断蓝牙是否开启4. 查找蓝牙设备4.4.1 BluetoothAdapter.startLeScan4.4.2 getBluetoothLeScanner()4.4.3 startDiscovery()方法5. 在查找的回调函数中取得扫描的设备4.5.1 使用 BluetoothAdapter.start.LeScan的回调4.5.2 getBluetoothLe原创 2022-04-11 10:16:37 · 548 阅读 · 0 评论 -
安卓开发环境使用 Lombok
安卓开发环境使用 Lombok一、简介二、操作过程1. 准备好一个安卓项目2. 增加 lombok.config3. 安卓 lombok 插件三、报错处理一、简介Lombok是一款在Java开发中常用的注解工具,可以用来简化实体类的定义。但在安卓的开发环境中,并不像普通Java项目中使用这么简便,需要多一点操作。二、操作过程1. 准备好一个安卓项目2. 增加 lombok.config在安卓项目的根目录下放一个 lombok.config, 内容:lombok.anyConstructor.s原创 2021-08-17 11:19:12 · 1594 阅读 · 0 评论 -
安卓使用阿里云的日志服务
安卓日志阿里云的日志服务一、说明二、操作步骤1. 在阿里云上开一个日志服务的project2. 新建一个Logstore3. 新建数据接入4. 新建 accesskey5. 下载sdk6. 设置application.manifest权限三、运行示例代码1. 使用android studio打开示例项目,按提示修改以下参数:2. 运行后,点击app上的 LOG UPLOAD按钮一、说明日志对于跟踪程序的运行非常重要。安卓通常的日志是通过控制台打印,也可以通过一些组件记录到手机文件系统中。为了方便远程调试原创 2020-09-28 16:58:55 · 2017 阅读 · 1 评论 -
Android 开发系列 1 反编译
学习安卓开发,源码学习很重要。除了看开源代码,学习别人成品也是重要方法之一。1.反编译工具及下载地址:apktool:获取资源文件dex2jar:dex反编译为jarjd-gui:可视化dex2jar2.操作1.反编译资源:把要反编译的apk放到apktool目录下:运行命令:apktool.bat d -f test.apk test ...原创 2015-03-18 11:57:53 · 1092 阅读 · 0 评论 -
Android 开发系列 2 Activity
Activity是Android的每一屏程序的主体。创建过程新建Activity这是加载webview的一个示例package com.whr.smarthome;import android.support.v7.app.ActionBarActivity;import android.annotation.SuppressLint;import android.os.Bundle;imp原创 2015-07-02 10:15:30 · 885 阅读 · 0 评论 -
Android 开发系列 3 Intent
预留转载 2015-07-02 10:19:13 · 565 阅读 · 0 评论 -
Android 开发系列 4 布局
预留原创 2015-07-02 10:19:48 · 557 阅读 · 0 评论 -
Android 开发系列5 使用netty
预留原创 2015-07-02 10:39:00 · 1176 阅读 · 0 评论 -
Android 开发系列6 x86模拟器 Genymotion使用
genymotionandroid x86的模拟器。安装比较容易,不再详解。 官网地址: https://www.genymotion.com/ http://www.genymotion.net/常见问题如果windows10下运行报错,尝试以下解决方案: 1.检查注册表: HKEY_CURRENT_USER > SOFTWARE > Genymobile > Genymotion原创 2015-08-19 09:19:31 · 1994 阅读 · 0 评论 -
Android 开发系列7 判断上网方式(Wifi还是数据流量)
首先要在AndroidManifest.xml加上权限:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 判断有无网络连接:ConnectivityManager mConnectivity = (ConnectivityManager)getSyste...原创 2015-04-07 09:40:05 · 22538 阅读 · 6 评论 -
Android 开发系列8 ubuntu kylin 下的 android 编译
我是新安装的ubuntu kylin14.04 64bit,没有进行特别设置,直接进行下面操作:一同步代码1.如果没有安装curl,就先安装它sudo apt-get install curl2.到用户目录新建bin目录mkdir ~/bin3.安装git-corecurl https://dl-ssl.google.com/dl/googlesource/git-re...原创 2015-05-20 10:17:06 · 1333 阅读 · 0 评论 -
Android 开发系列9 下抓包
1.android需要先root2.安装android sdk3.下载tcpdumphttp://download.youkuaiyun.com/detail/xundh/93940094.android设备连接到手机,打开命令行输入adb shell手机提示授权,看到光标由$变为#,说明已经获取权限。执行命令chmod 777 /data/localexitexi...原创 2015-05-26 18:07:50 · 2326 阅读 · 0 评论 -
Android 开发系列10 adb 和 shell、Logcat 常用命令
adbadb devices 查询模拟器/设备实例adb -s <serialNumber> <command> 发送命令adb install <path_to_apk> 安装软件adb -s emulator-5556 install aaa.apk 给某设备安装软件adb forward tcp:6100 tcp:7100 ...原创 2015-05-26 17:49:41 · 9001 阅读 · 0 评论 -
Android 开发系列11 自启动程序
实现原理Android系统启动时会发送一个ACTION_BOOT_COMPLETED的广播,android.intent.action.BOOT_COMPLETED代码新建一个空项目package com.example.autorun;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import原创 2015-06-12 08:28:28 · 1850 阅读 · 0 评论 -
Android 开发系列12 Android Studio 使用aar
一、生成新建 New Module 选择Android Library 写好程序后,Build-Rebuild Project,就可以在/build/outputs/aar/ 下生成对应的aar。默认生成的debug,如果要生成release, 打开Terminal,输入命令:gradlew assembleRelease二、 使用复制aar到目标项目...原创 2017-08-14 17:21:45 · 523 阅读 · 0 评论 -
Android 开发系列13 Android Studio 代码混淆
混淆作用将程序变得难以阅读,防范程序被逆向。Android Studio开启混淆的方法Android Studio自身集成Java语言的ProGuard作为压缩,优化和混淆工具,可以配合Gradle构建工具使用。找到gradle里的minifyEnabled设置为true即可。android { ... buildTypes { releas原创 2017-06-29 21:40:24 · 670 阅读 · 0 评论 -
Android 开发系列14 修改Android启动画面
一.Android的启动步骤1.启动Linux2.加载Android3.显示Android桌面二.分析Android加载开机动画的源码文件是: /opt/android4.3/frameworks/base/cmds/BootAnimation.cpp 关注其中的常量定义:#include "BootAnimation.h"#define USER_BOOTANIMATION_FILE "/da原创 2015-06-10 11:50:41 · 2662 阅读 · 0 评论 -
Android 开发系列15 Android4.3 系统裁剪——删除不使用的app及增加自己app
删除不使用的apk系统自带的app位置是在/android4.3/packages/apps 下面是一些APP作用分析:| |– BasicSmsReceiver | |– Bluetooth (蓝牙) | |– Browser (浏览器) | |– Calculator (计算器) |原创 2015-06-12 14:04:16 · 3570 阅读 · 0 评论 -
Android 开发系列16 使用GSON / JAVA使用genson
gson1.下载gson-2.3.1.jar , 放到项目libs里2.对象转json字符串 Gson gson=new Gson(); String senddatastr=gson.toJson(obj);3.json字符串转对象 Gson gson=new Gson(); return gson.fromJson(packetContent.toSt...原创 2015-04-08 16:10:35 · 1115 阅读 · 0 评论 -
Android 开发系列17 Eclipse导出jar包
导出jar项目上点右键,选择Export bin/res也不要选作为库导出 编译项目,在项目的bin/下会生成对应的.jar文件。原创 2016-08-30 08:33:42 · 1218 阅读 · 0 评论 -
Android 开发系列18 ADT 导入aar
IONIC项目里引用了一个barcodescanner,在eclipse导入项目后,会缺少必要的引用。操作步骤:把 barcodescanner-release-2.0.1.aar改名为 barcodescanner-release-2.0.1.zip解压缩得到文件夹: 新建目录 libs,并把classes.jar放进去删除R.txt新建 project.properties ,内容:原创 2016-08-16 14:38:48 · 2417 阅读 · 0 评论 -
android context与getApplicationContext()
private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); context=this; init(); }这里的context指当前Activity的上下文。this.getApplic原创 2015-04-07 10:04:49 · 1071 阅读 · 0 评论 -
Android UDP多播 Not a multicast group 问题处理
Not a multicast group multicastSocket = new MulticastSocket(4320); multicastSocket.setLoopbackMode(true); InetAddress group = InetAddress.getByName(broad_address); 原因是broad_address不是有效的广播原创 2015-04-07 15:06:58 · 4708 阅读 · 0 评论 -
Android 一些环境常见问题处理汇总
界面显示:Source not found.Edit Source Lookup Path...经检查代码 WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); lock = wifiManager.createMulticastLock("multica原创 2015-04-08 10:39:35 · 4225 阅读 · 0 评论 -
Android 用回调函数封装HttpClient请求
import java.io.IOException;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClie原创 2015-04-10 13:42:31 · 3389 阅读 · 1 评论 -
典型的手机屏幕尺寸
iPhone 手机 屏幕尺寸(像素) 屏幕模式 iPhone3GS 320*480 1x iPhone4 (320*2=640)*(480*2=960) 2x iPhone5 (320*2=640)*(568*2=1136) 2x iPhone6 (375*2=750)*(667*2=1334) 2x iPhone6Plus (414原创 2015-06-27 15:29:15 · 6592 阅读 · 0 评论 -
Android Studio Tips(部分问题可能集成ionic才会出现)
导入项目时进度条卡住不动查看gradle版本:C:\Users\用户名\.gradle\wrapper\dists\gradle-1.XX-all存放位置:C:\Users\用户名\.gradle\wrapper\dists\gradle-1.XX-all\3jdgemv0iv8uqohg3kcp2o88r1\gradle-1.XX-all.zip手工下载gradle https://down原创 2016-08-11 07:53:38 · 2574 阅读 · 0 评论 -
Android 安全--WebView不校验证书漏洞
继承关系java.lang.Object 继承者 android.os.Handler 继承者 android.webkit.SslErrorHandler问题方法cancel( )停止加载问题页面proceed( )忽略SSL证书错误,继续加载页面触发条件: 1. 调用SslErrorHandler类的proceed方法 【1】对应到smali语句中的特征:Landroid原创 2016-11-07 14:03:58 · 6443 阅读 · 0 评论 -
Android安全--webview远程代码执行漏洞
说明Android API level 16以及之前的版本存在远程代码执行安全漏洞,源于程序没有正确限制WebView.addJavascriptInterface方法,攻击者可以利用Java Reflection API 执行任意Java对象的方法。最早公布 CVE-2012-6636【1】。影响范围Android API level 小于17(android 4.2以前的系统)漏洞位置WebVi原创 2016-11-07 15:08:20 · 1761 阅读 · 0 评论 -
Android debugaable值的设置
使用AndroidStudio打包的APK,被检测:在manifest.xml中定义Debuggable项,如果该项被打开,app存在被恶意程序调试的风险,可能导致泄漏敏感信息泄漏等问题。如果在AndroidManifest.xml里写:<application android:debugaable="false"则AndroidStudio提示:Avoid hardcoding the d原创 2016-11-17 09:54:05 · 4226 阅读 · 1 评论 -
Android HTTPS中间人劫持漏洞浅析
作者:行里1. Android HTTPS中间人劫持漏洞描述 在密码学和计算机安全领域中,中间人攻击 ( Man-in-the-middle attack,通常缩写为MITM )是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容转载 2016-11-18 08:29:18 · 2037 阅读 · 0 评论 -
Android安全开发之安全使用HTTPS
1、HTTPS简介 阿里聚安全的应用漏洞扫描器中有证书弱校验、主机名弱校验、webview未校验证书的检测项,这些检测项是针对APP采用HTTPS通信时容易出现风险的地方而设。接下来介绍一下安全使用HTTPS的相关内容。1.1 为何需要HTTPSHTTP协议是没有加密的明文传输协议,如果APP采用HTTP传输数据,则会泄露传输内容,可能被中间人劫持,修改传输的内容。如下图所示就是典型的APP HT转载 2016-11-18 08:59:06 · 2040 阅读 · 0 评论 -
AndroidManifest allowBackup配置风险
背景2012年Android 2.2 Froyo系统中,谷歌引入了系统备份的功能,允许用户备份系统应用和第三方应用的APK安装包和应用数据。 第三方应用需要在AndroidManifest.xml中配置allowBackup(默认true)。当这个标志被设置为true时,应用程序数据可以在手机未root的情况下,通过adb调试工具来备份和恢复,因此攻击者可以利用这个漏洞在接触用户手机的情况下短时间原创 2016-11-21 08:39:44 · 625 阅读 · 0 评论 -
Android Monkey测试手记
简介Monkey测试是一个APP的压力测试工具特性测试的对象仅为应用程序包测试使用的事件流数据是随机的,不能自定义可对MonkeyTest的对象、事件数量、类型、频率进行设置用法基本语法 $adb shell monkey [options]不指定options的情况下,Monkey以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。示例: $adb shell monkey原创 2016-11-30 10:18:23 · 480 阅读 · 0 评论 -
OKHttp 上手记录
简介:Android提供了两种HTTP通信类,HttpURLConnection和HttpClient。OKHttp是一个相对成熟的解决方案,处理了很网网络疑难杂症:会从很多常用的连接问题中自动恢复。如果服务器配置了多个IP地址,当第一个IP连接失败时,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。OkHttp无需重写程序中的网络代码。OkHttp实现了原创 2016-12-24 16:28:21 · 608 阅读 · 0 评论 -
Android Studio Multiple dex android/support/v4 处理
ionic 项目提示:com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs;打开文件夹 build/intermediates/pre-dexed/debug:可以看到有两个android-su原创 2017-09-12 13:53:06 · 933 阅读 · 0 评论 -
Android Studio ADB几个问题
问题一:ADB 经常死机、掉线把在线的adb.exe注释掉,下载这个adb adb下载 下载后把路径加入到path里。问题二:ADB 找不到设备在电脑上安装好手机google usb驱动后,手机进入设置 ==> 应用程序 ==> 开发 ==> 勾选USB调试后连接电脑,但adb devices看不到设备 。 解决1. 查找硬件id...原创 2018-06-28 22:32:10 · 3372 阅读 · 0 评论 -
安卓原生 VideoView实现rtsp流媒体的播放
本项目实现安卓原生 VideoView实现rtsp流媒体的播放。AndroidManifest.xml权限设置<uses-permission android:name="android.permission.INTERNET"/>activity_main.xml<?xml version="1.0" encoding="utf-8"?><android...原创 2018-12-22 22:34:08 · 7672 阅读 · 0 评论 -
Rtsp-Android-Client实现的安卓简单RTSP播放器
项目使用库github上的Rtsp-Android-Client库https://github.com/htwahzs/Rtsp-Android-Clientactive_main.xml<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:and...原创 2018-12-22 22:37:37 · 13590 阅读 · 7 评论