Android
文章平均质量分 71
DvLee1024
微信同号,更多内容请到博客:https://shop.hidavid.cn
展开
-
手机是如何进入元宇宙的?(结合Android和UE4技术)
步骤有以下几步:获取手机旋转信息命令发送到三维世界轴向转换角度初始化获取手机旋转数据Android手机可以直接通过SensorManager获取手机旋转数据,如下面代码拿到的rotator就是手机旋转的四元数数据。private SensorManager sensorManager;private Sensor rotationSensor = null;public static float[] rotator = new float[4];void init(){ sens原创 2021-12-18 22:10:34 · 4882 阅读 · 0 评论 -
解决Android项目中调用高于minSdkVersion版本的依赖库lib/sdk/api导致无法编译成功的问题
问题描述在AndroidStudio项目中,为避免重复造轮子,经常需要引入一些依赖库,但有时候引入的依赖库比项目minSdkVersion还要高,此时项目会无法编译成功,报出以下error。Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 24 declared in library [:sdk-release:] /Users/dvlee/.gradle/caches/transforms原创 2020-11-29 23:02:17 · 1723 阅读 · 0 评论 -
android图片合成
/** * 合成两个图,src为显示范围,dst为显示内容 * @param srcBitmap * @param dstBitmap * @return */ public static Bitmap compositeImages(Bitmap srcBitmap , Bitmap dstBitmap){ Bitmap原创 2015-09-17 10:04:18 · 1794 阅读 · 0 评论 -
Android优秀文章链接
Google java编程规范指南http://www.hawstein.com/posts/google-java-style.htmlAndroid设计模式https://github.com/simple-android-framework/android_design_patterns_analysis原创 2015-11-17 11:22:58 · 501 阅读 · 0 评论 -
Google提供的一款查看APK内容的工具——ClassyShark
ClassShark 是一款查看Android执行文件(apk)的浏览工具,目前有两个android App(Apk)和桌面(jar)的版本。使用这款工具,可以很方便的打开APK/Zip/Class/Jar 文件和分析里面的内容。详细介绍地址:https://github.com/google/android-classyshark原创 2015-12-03 14:38:58 · 4706 阅读 · 0 评论 -
关于Android6.0权限
Android6.0开始,有些权限的获取需要用以下方式来询问用户:int permissionCheck2 = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);if (permissionCheck2 != PackageManager.PERMISSION_GRAN原创 2016-09-06 14:38:41 · 371 阅读 · 0 评论 -
apk 反编译
./apktool.sh d apk_path原创 2016-10-10 14:47:03 · 247 阅读 · 0 评论 -
Android系统呼吸灯源码简单跟踪分析
公司项目开发VR设备,VR系统是在AndroidN基础上定制的。最近需要对LED灯做一些逻辑控制,于是查看了下led灯相关的代码,下面简单分享下:安卓系统的呼吸灯在BatteryService里面写了一段逻辑,在电池信息变化的时候更新呼吸灯状态。BatteryService路径在 “frameworks/base/services/core/java/com/android/ser原创 2017-11-29 16:02:54 · 2003 阅读 · 0 评论 -
Android系统开机动画修改
Android系统开机动画有两个,一是启动linux的动画,另一个是启动Android的。下面主要讲修改启动Android系统的开机动画,我是在AndroidN上测试的,其他系统版本方式一样。1、首先要把动画文件拷贝出来 路径如下:adb pull /system/media/bootanimation.zip ~/Destop/如果该路径没有bootanimation.zip,那表示使用系统自带原创 2017-12-01 16:15:41 · 2051 阅读 · 1 评论 -
修改底层文件,实现修改Android设备屏幕亮度和控制led灯
分享一个很酷的玩法,通过修改Android系统底层文件,实现修改设备屏幕亮度和led灯。即使没有这个需求,可以作为一种炫技的玩法!!1、“adb shell” 进入系统目录2、“adb root” 获取root权限;3、进入该目录 “/sys/class/leds/lcd-backlight/”,目录下“brightness”即为屏幕亮度数值,可以通过命令“cat原创 2017-11-27 16:27:36 · 7498 阅读 · 0 评论 -
开启andriod手机的adbd,进行无线adb调试
注:如果没有 root 权限也是可以试试,一般情况下,都需要 root 权限,才能连接成功。1.需要确保你的开发 PC 和 Android 手机都连上了 wifi 并处于同一网段下;2.开启 usb 调试,且用 usb 将 Android 设备连接到开发 PC 上;3.进入到你的 Android SDK 的 platform-tools 目录下,执行原创 2015-05-21 21:18:13 · 25753 阅读 · 2 评论 -
Android使用OpenCV
读大学时报了一个课程叫《动目标检测》,那时候大受启发,原来摄像头可以这么玩的,通过摄像头捕捉图像,经过图像处理和分析找出运动目标。上了那个课程,简直就是打开了视野,后来做了一些简单的体感游戏,基于两帧相减得出运动的像素,通过运动的像素分析出玩家的肢体运动,从而操控游戏。当时水平有限,还没深入了解光流之类的算法,但已经了解到图像处理的高深莫测,是未来发展的很好的方向。摄像头是机器人的眼睛,开发摄像头...原创 2018-09-15 17:21:20 · 1273 阅读 · 0 评论 -
使用CMake编译native代码
从AndroidStudio2.2版本开始,官方新增了并默认使用cmake为Android的ndk编译方式。如何使用?新建Android工程,勾选C++支持,即可新建一个标准的native开发工程。其中“CMakeLists.txt”为cmake编译的配置文件在项目model app的“build.gradle”文件里面,我们可以看到以下代码android { ...原创 2018-09-13 18:13:33 · 684 阅读 · 0 评论 -
Android 工程调用FastCV库
FastCV是高通为提高在ARM芯片乃至晓龙芯片的图像处理算法效率,专门定制的一个CV库。网上有人专门对比过和opencv大部分算法的处理时间,接近十倍于opencv的速度。所以很值得尝试把原来OpenCV的接口改用FastCV来实现。Github上面搜索到FastCV的demo,地址如下:https://github.com/dongxiawu/FastcvDemo拉下代码后,顺利编译,在...原创 2018-11-14 04:39:39 · 1081 阅读 · 0 评论 -
记录几个Android JNI的使用技巧
jclass localClass = env->FindClass(“com/dv/MyJni”);jmethodID methodID = env->GetStaticMethodID(localClass,“onMeasureResult”, “(FFF)V”);env->CallStaticVoidMethod(localClass,methodID,1.2f,1.1...原创 2018-12-28 17:26:48 · 373 阅读 · 0 评论 -
快速体验物联网通信中常用的CoAP与MQTT
今天快速入门了一下CoAP与MQTT,跑下网上的demo,感受下这两个物联网很流行的通信库都是怎么玩的。CoAPCoAP是一个类似http协议的,但比http更轻便小型的通信协议。基于UDP,跟一样http一样使用get、post、put等方法。下载libcoap源码git clone https://github.com/authmillenon/libcoap.git编译和...原创 2019-04-03 17:54:07 · 991 阅读 · 0 评论 -
继承webview导致软键盘无法弹出
最近发现自己继承webview写的类,点击web里面的输入框,无法弹出软键盘,查了很久,原来问题出在构造函数里面:public ScrollDetectWebView(Context context) { this(context,null,0); }原因是webview的构造函数写了style,自己重写的构造函数把style丢失了public原创 2015-07-20 16:34:14 · 1193 阅读 · 0 评论 -
如何提高Android应用启动速度,避免启动时黑屏太久
1、避免在Application的onCreate里执行耗时代码,包括不必要的初始化动作;设置背景图Theme @drawable/ipod_bg true //2、设置透明Theme true true原创 2015-07-15 18:13:56 · 814 阅读 · 0 评论 -
android生命周期
通用生命周期流程如下:正常启动 onCreate onStart onPost onCreate onResume onPostResume转向下一个activity onPause onStop从下一个activity返回当前(按机器返回键)onRestart onStart onResume onPostResume转向上一个activity(按机器返回键)原创 2014-02-17 22:47:44 · 602 阅读 · 0 评论 -
创建单项链表,然后实现单项链表逆序
// 创建一个任意数目的单项链表,每项的位置作为自己的初始数据// 返回链头 Node initLink(int num){ Node head = new Node(); head.data = 1; Node temp1 = head; for(int i = 2; i<=num; i++){ // 创建第二个 Node temp2 = new Node();原创 2014-02-19 21:42:42 · 580 阅读 · 0 评论 -
dp dip px sp
dp(density-independent): 虚拟像素单位,大小为dpi160设备上的1个像素的大小。dip(density independent): 同上px: pixels像素sp: scaled pixels(放大像素)px = dp * (dpi / 160)dpi: dots per inch,屏幕密度原创 2014-03-11 13:08:34 · 530 阅读 · 0 评论 -
android平台下使用点九PNG技术
http://www.yixieshi.com/ucd/9142.html转载 2014-05-16 16:20:01 · 406 阅读 · 0 评论 -
NanoHttpd 专门为嵌入java应用设计的轻型HTTP服务器
NanoHttpd is a light-weight HTTP server designed for embedding in other applications.原创 2014-04-25 16:58:11 · 3603 阅读 · 1 评论 -
使用lint提高android代码质量
http://developer.android.com/tools/debugging/improving-w-lint.html原创 2014-05-21 10:05:43 · 378 阅读 · 0 评论 -
使用Zipalign优化Android apk应用程序
http://www.shendu.com/news/android-5158.html原创 2014-05-23 12:47:47 · 637 阅读 · 0 评论 -
重写getChildDrawingOrder,让gridview倒序绘制item
最近要实现一个效果,gridview每个item加上动画,发现每个item都会被后面的item挡住,重写viewgroup的这个方法可实现倒叙绘制item,让后面的item绘制在前面item的底部。public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet原创 2015-03-19 16:23:58 · 3729 阅读 · 2 评论 -
解决HierarchyViewer无法读取真机应用信息的问题
HierarchyViewer只能读取虚拟机和开发手机的应用信息,无法检测到平时我们使用的手机的应用信息,解决方案如下:在工程里面添加ViewServer.java(https://github.com/romainguy/ViewServer)在需要检测的activity里面,添加如下代码,重新编译应用即可。@Override public void onCreate(Bu原创 2015-03-11 09:21:10 · 626 阅读 · 0 评论 -
获取应用能使用的最大堆内存
Android每一个应用的堆内存大小有限 1、 通常的情况为16M-48M 2、 通过ActivityManager的getMemoryClass()来查询可用堆内存限制 3、3.0(HoneyComb)以上的版本可以通过largeHeap=“true”来申请更多的堆内存 Nexus S(4.2.1):norma原创 2015-03-18 11:44:47 · 641 阅读 · 0 评论 -
gradle修改生成apk的名字,并修改输出路径
最近项目使用了gradle构建项目,每次打包名字都是app-release.apk, 下面分享一个修改apk名字的方法。在build.gradle的android里面配置下面代码:android.applicationVariants.all { variant -> variant.outputs.each { output -> def原创 2015-04-11 17:15:19 · 5598 阅读 · 0 评论 -
管理activity屏幕触摸事件
在activity中,设置一下window的callback,即可实现整个窗口的触摸事件的监听Window win = activity.getWindow(); win.setCallback(new SimpleWinCallback(win.getCallback()){ @Override publ原创 2015-04-16 23:39:15 · 1977 阅读 · 0 评论 -
android应用里执行cmd命令
方法一:这是方法,添加到你的应用程序中即可,比较简陋,呵呵!public void execShell(String cmd){ try{ //权限设置 Process p = Runtime.getRuntime().exec("su"); //获取输出流 OutputS转载 2015-05-12 20:56:01 · 11923 阅读 · 0 评论 -
分配更多内存,提高Android Studio的运行速度
Android Studio 像其他java应用一样,在运行的时候会占用大量的内存。除非你给IDE分配了足够的内存,不然在磁盘运转频繁的时候,只能给你祈祷了。修改内存分配的文件For Windowns:[AS Installation Folder]\studio64.exe.vmoptions or studio.exe.vmoptions For Mac :/App原创 2015-05-30 12:26:03 · 5372 阅读 · 0 评论 -
android截屏实现
一、截取DecorView,但不能截取视频图片;private Bitmap takeScreenShot(Activity activity) { View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitma原创 2015-07-03 15:15:36 · 579 阅读 · 0 评论 -
AndroidStudio Gradle项目混淆
build.gradle 把release里面的minifyEnabled设置成true,开启混淆。混淆的配置文件是proguardFiles定义的文件,getDefaultProguardFile表示读默认sdk路径proguard里面的proguardandroid.txt,这份文件可以不用改,还有项目里面的proguard-rules.pro。buildTypes {原创 2015-07-14 20:21:31 · 3735 阅读 · 0 评论 -
【Android】代码实现模拟屏幕点击和键盘按键事件
最近参加某比赛写了一个Android手机控制Android电视的程序,其中需要控制电视端模拟“鼠标”点击,和模拟按键盘的事件。下面直接贴上程序:/** * 触发屏幕点击事件 * @param x 点击位置的x值 * @param y 点击位置的y值 */ public void setMouseClick(int x, int y){原创 2014-01-12 22:07:59 · 8413 阅读 · 3 评论