Android 播客
路过独木桥!!
本人从事6年的android app开发和framework开发 从事过rk 展锐 MTK等平台os定制开发
展开
-
ADB命令常用操作指南
一、ADB环境搭建1、下载platform-tools(安卓调试工具包)链接:https://pan.baidu.com/s/1p999TetOAYz9ijEZhxDDbw 提取码:httf 2、将下载下来的platform-tools工具包放到电脑的某个目录下面,见如下图(路径不要带中文)3、配置环境变量右击我的电脑->选择属性->点击左边高级系统设置->点击环境变量->再点击系统变量中Path变量点击Path变量后添加platform-tools路径再系统变量原创 2021-12-24 14:42:35 · 9738 阅读 · 1 评论 -
Binder的使用以及核心机制分析,跨进程的实现原理
Binder可以提供系统中任何程序都可以访问的全局服务。这个功能当然是任何系统都应该提供的Android Binder框架分为服务器接口、Binder驱动、以及客户端接口;简单想一下,需要提供一个全局服务,那么全局服务那端即是服务器接口,任何程序即客户端接口,它们之间通过一个Binder驱动访问。Binder框架原理分析1、ISettingToServer.aidl文件生成的Java文件public interface ISettingToServer extends android.os.IInt原创 2021-11-13 09:13:53 · 565 阅读 · 0 评论 -
Android WindowManager.LayoutParams.type属性总结
type 的取值:应用程序窗口。 public static final int FIRST_APPLICATION_WINDOW = 1; 所有程序窗口的“基地”窗口,其他应用程序窗口都显示在它上面。 public static final int TYPE_BASE_APPLICATION =1; 普通应用功能程序窗口。token必须设置为Activity的token,以指出该窗口属谁。 public static final int TYPE_APPLI原创 2021-11-05 16:10:37 · 2527 阅读 · 0 评论 -
Android 控件 Seekba如何禁止拖动
1、创建一个ForbidDragSeekBar 类继承SeekBar ,当我们触摸到该控件的时候,在onTouchEvent方法中就返回false,该方法并未处理完全,该事件仍然需要以某种方式传递下去继续等待处理。public class ForbidDragSeekBar extends SeekBar { /** * 是否支持拖动进度 */ private boolean touch = false; public ForbidDragSeekBar(C原创 2021-10-13 15:55:10 · 1067 阅读 · 0 评论 -
Android 控件 自定Seekbar样式
效果图xml布局文件 <SeekBar android:id="@+id/iv_music_progress" android:layout_width="380dp" android:layout_marginLeft="110dp" android:maxHeight="9dp" android:minHeight="9dp" android:layout_height="wrap_content原创 2021-09-26 17:48:28 · 276 阅读 · 0 评论 -
Android Studio 修改应用程序的包名
一、右击需要修改的包名二、选择需要修改的包名,然后点击Refactor三、点击Refactor后会弹出如下界面,然后点击Do Refactor按钮,这样包名就修改过来了原创 2021-09-09 09:25:17 · 2491 阅读 · 0 评论 -
Android Studio 查看JNI中函数签名
一、先编译一下工程Rebuild Project,找到 build 文件夹二、找到 javac 文件夹三、找到自己写的 xxx.class文件四、右键 xxx.class 文件,在 Terminal 中打开五、第五步:执行 javap -s xxx.classjavap -s ConnectListenr.class执行上面命令后就可以看到JNI函数的签名了public interface com.zqc.livepush.ConnectListenr { public abstra原创 2021-09-02 15:20:12 · 677 阅读 · 0 评论 -
Android Studio 问题总结
1、AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的。这时候我们就需要配置镜像来解决这个问题解决方案:buildscript { repositories { maven { url 'https://jitpack.io' } maven { url 'https://maven.aliyun.com/repository/public' }原创 2021-08-23 11:51:15 · 110 阅读 · 0 评论 -
Android 9.0 TF卡写入权限解决以及验证方法
在Android9.0开发过程中,我们想往TF卡里面写入数据的时候,我们在代码中和资源文件中都申请了权限,但是一直会报如下权限问题一、错误日志saveBytes Exception e /storage/A466-13E5/DCIM/test/1627287905384.yuv (Permission denied)解决办法:代码路径:system\vold\model\PublicVolume.cppif (!(mFusePid = fork())) { if (getMo原创 2021-07-27 10:29:32 · 3006 阅读 · 0 评论 -
Android应用开发知识体系以及工作常用功能记录
建立自己的知识体系主要是方便后续自己查看。以前我是从来不作笔记,需要的时候就去网上查资料,这样在工作中也太浪费时间也不利于自己查看,所以我就把Android需要用到的知识和工作中常用到东西记录下来。...原创 2020-05-05 20:03:49 · 650 阅读 · 0 评论 -
Android Studio NDK 定位出错代码位置
一、在Android开发中,我们经常遇到以下错误:AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<06-28 16:08:29.715 12954 12954 D AndroidRuntime: Calling main entry com.android.commands.wm.Wm06-28 16:08:29.721 12原创 2021-06-28 17:18:30 · 854 阅读 · 2 评论 -
Android 统计单个应用流量
在Server中获取的流量数据根据包名获取该应用的uidpublic int getUid(String package) { try { PackageManager pm = mEcarService.getPackageManager(); ApplicationInfo ai = pm.getApplicationInfo(package, PackageManager.GET_ACTIVITIES); return ai.uid; } catch (PackageMa原创 2020-09-01 10:32:01 · 848 阅读 · 0 评论 -
Android 自定义View中invalidate()的自动清屏含义以及屏幕刷新
invalidate()含义invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面。invalidate()的调用是把之前的旧的view从主UI线程队列中pop掉。对于屏幕刷新有以下集中情况可以考虑:1.不使用多线程和双缓冲这种情况最简单了,一般只是希望在View发生改变时对UI进行重绘。你只需在Activity中显式地调用View对象中的invalidate()方法即可。系统会自动调用 View的原创 2020-07-31 16:33:29 · 1699 阅读 · 0 评论 -
Android 8.1静态广播的使用以及添加权限
为了发送广播的时候只让特定的某一个应用程序APP接收到数据,而不想其他应用程序接收到数据的时候,需要配置权限。一、广播接收者设置权限:在AndroidManifest.xml中添加权限和定义静态广播 <permission android:name="zqc.permission.SILENT_INSTALL_PERMISSIONS" android:protectionLevel="normal" /> <receiver and原创 2020-07-08 14:31:30 · 2366 阅读 · 0 评论 -
Android Studio执行Java类的main方法及解决方法
一、错误提示FAILURE: Build failed with an exception.* Where:Initialization script 'C:\Users\Android1\AppData\Local\Temp\CreatComputer_main__.gradle' line: 21* What went wrong:A problem occurred configuring project ':app'.> Could not create task ':app:原创 2020-06-20 17:15:25 · 1163 阅读 · 0 评论 -
Android Studio打包生成Jar包的方法
一、Android Studio打包生成Jar包的方法流程1、在当前项目下面的build.gradle文件中添加如下字段android { compileSdkVersion 28 defaultConfig { minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "原创 2020-06-20 16:33:00 · 2177 阅读 · 0 评论 -
常见的异常
一、异常Exception算术条件异常(譬如:整数除零等):java.lang.ArithmeticException数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出:java.lang.ArrayIndexOutOfBoundsException数组存储异常。当向数组中存放非数组声明类型对象时抛出:java.lang.ArrayStoreException强制类型转换异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异原创 2020-06-15 20:45:36 · 709 阅读 · 0 评论 -
Android 8.1 内置第三方app并且启动第三方服务
在工作中经常会内置第三方的app到系统中并且启动人家的服务,所以我就做了一些记录。一、在package/app下面创建一个文件夹test,在里面创建一个Android.mk文件和添加第三方的app.1、创建一个Android.mk文件LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := testLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(LOCAL_MODULE)原创 2020-06-13 17:16:16 · 1218 阅读 · 0 评论 -
实现一个View的位置改变
一、新建一个R.layout.activity_main布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android原创 2020-06-04 20:28:28 · 442 阅读 · 0 评论 -
Android 播放音频的几种方式
一、采用SoundPool来播放音频private SoundPool soundPool;private HashMap<Integer, Integer> soundMap = new HashMap<Integer, Integer>(); soundPool = new SoundPool(100, AudioManager.STREAM_SYSTEM, 5); //加载音频资源private void loadAudioResource() { L原创 2020-05-27 15:32:28 · 650 阅读 · 0 评论 -
Android 百度地图的集成
一、创建一个应用,然后获取开发版SHA1。1、打开android studio 找到Terminal并打开,或者在最下面找到Terminal ,输入命令 C: 进入c盘,接着 输入命令 cd Users\Administrator 其中Administrator是自己的用户名 Administrator文件下有个.adnroid文件, 输入命令 cd .android,最后就找到了.android,如下图:2、输入命令 keytool -list -v -keystore de原创 2020-05-21 17:45:38 · 557 阅读 · 0 评论 -
Android 启动第三方应用方法
一、根据包名和包名+类名启动一个应用Intent intent = new Intent();intent.setComponent(new ComponentName("com.baidu.track","com.baidu.track.activity.TrackQueryActivity"));intent.setAction(Intent.ACTION_VIEW);mContext.startActivity(intent);...原创 2020-05-19 09:46:25 · 738 阅读 · 0 评论 -
Anroid8.1 强制修改系统可以adb remount
在Android6.0 (Android M)user版本上,发现使用adb root后再adb remount系统之后会提示这样信息:remount of /system failed: Read-only file system,这是不能对system分区进行操作,提示没有写权限,为只读文件系统Read-only file system,因为系统本身在user就不支持可写操作,我们就不能adb push来调试apk,如果想调试apk就需要修改system、vendor权限问题。如下现象:C:\Use原创 2020-05-15 14:31:19 · 1140 阅读 · 0 评论 -
Android杀掉进程几种方式
一、Android杀死别的进程1、需要添加的权限<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/>2、代码中杀掉进程private ActivityManager mAm;mAm = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); mAm.forceStopPackage("包名");二、An原创 2020-05-14 16:19:19 · 2514 阅读 · 2 评论 -
Android SwipeRefreshLayout+RecyclerView实现下拉刷新和上拉加载
一、SwipeRefreshLayout简介SwipeRefreshLayout作为谷歌官方推荐的下拉刷新控件,在实际开发中,经常都会遇到下拉刷新、上拉加载更多的情形。,该控件集成自ViewGroup在support-v4兼容包下。SwipeRefrshLayout常用的几个方法如下:isRefreshing():判断当前的状态是否是刷新状态。setColorSchemeResources(int… colorResIds):设置下拉进度条的颜色主题,参数为可变参数,并且是资源id,可以设置多种不原创 2020-05-10 10:29:58 · 2030 阅读 · 1 评论 -
dumpsys命令用法
查看应用的版本号dumpsys package 包名|grep version原创 2020-05-06 21:26:06 · 576 阅读 · 0 评论 -
Android 8.1根据经纬度来绘制地图轨迹以及解决坐标系偏移问题
功能说明:需要拿到经纬度来绘制地图轨迹。解决思路是先把经纬度保存到一个文件中,然后从文件中读取经纬度数据,然后在地图上面绘制。一、读取文件和保存文件的工具类public class FileStoreTool { private static final String TAG = "FileStoreTool"; private static ArrayList<String>...原创 2020-05-04 15:59:33 · 1779 阅读 · 3 评论 -
Android Studio 将moudle项目打包成aar文件
在android开发中,我们有时候需要将一个项目作为一个依赖,并且能够使用其资源文件和界面,这个时候就需要将我们创建的moudle打包成一个aar文件.具体打包步骤如下:1、创建一个new moudle,然后选择Android Library,一直点击下一步,这样就创建了我们的Android Library,。2、在module中我们创建一个类便于其他项目调用。public class Te...原创 2020-04-23 21:39:17 · 656 阅读 · 0 评论 -
Android8.1 监听应用升级后实现自启动
一、在AndroidManifest.xml添加广播//监听应用升级后实现自启动 <receiver android:name="包名.PackageReceiver"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <...原创 2020-03-25 10:33:59 · 1011 阅读 · 3 评论 -
Android 8.1 recovery 强制执行恢复出厂设置
在工作中开发过程中,我们经常调试apk,然后推进机器里面去会已停止运行,你点几下就会恢复出厂设置。意思是说,不能加载正常的安卓系统,可能数据损坏,如果你继续收到此消息,请执行恢复出厂设置擦除所有的用户数据我们查看下recovery的log:cat /tmp/recovery.log[ 1.516818] erasing_text: en (68 x 29 @ 99...原创 2020-04-19 07:40:36 · 2460 阅读 · 0 评论