Android基础知识
文章平均质量分 61
木头小颖
喜欢足球的Coder
展开
-
Android设置悬浮窗按钮,图片有多余的白色背景
悬浮窗原创 2022-12-21 13:54:33 · 622 阅读 · 1 评论 -
利用android-serialport-api进行串口读写操作
谷歌开源的项目android-serialport-api让我们更方便的对串口进行读写操作,它的下载地址是https://github.com/cepr/android-serialport-api下载好开源库后,我们打开AndroidStudio,将库导入到项目里首先我们要将android_serialport_api包下面的类包括文件夹本身都原封不动的复制到项目的main/java路径下,跟我们项目本身自己创建的包名同级,切记不要更改任何名字。然后我们找到开源库下面的libs文件夹,原创 2021-03-25 15:42:27 · 2540 阅读 · 0 评论 -
AndroidStudio 配置NDK
获取NDK方式1.网站上下载NDK安装包地址:https://developer.android.google.cn/ndk/downloads/2.利用AndroidStudio下载按步骤选择NDK包,然后进行下载配置NDK的环境变量桌面 - 我的电脑 右键 - 属性,然后按照下面步骤,添加系统变量这里新创建的系统变量是变量名:NDK-ROOT变量值:即NDK下载安装后的路径点击确定后,在系统变量中找到Path,选择编辑选择新建,然后添加内容 .原创 2021-03-25 14:56:31 · 3164 阅读 · 0 评论 -
Android样式 - 主题叠加(theme overlay)
参看文章:https://medium.com/androiddevelopers/android-styling-themes-overlay-1ffd57745207Android如何使用主题,如何将主题应用到你的应用程序以及如何构建主题?范围Theme作为一个Context的属性被访问,它可以从任何拥有Context的Object中获得,例如Activity,View或 ViewGroup。这些对象存在于一棵树中,Activity包含ViewGroup,ViewGroup包含View等.原创 2020-09-12 18:13:24 · 2008 阅读 · 0 评论 -
Activity与Fragment之间生命周期的简单比较
Fragment生命周期onAttachonCreateonCreateViewonActivityCreate ______以上相当于Activity的onCreate方法onStart ______相当于Activity的onStart方法onResume ___...原创 2018-06-04 16:17:36 · 3123 阅读 · 0 评论 -
两个Activity之间跳转时必然会调用的方法
Activity1启动的时候 Activity1(onCreate)--->Activity1(onStart)--->Activity1(onResume)Activity1跳转到Activity2的时候(2完全覆盖了1) Activity1 (onPause)---> Activity1(onStop) Activity2(onCreate)--->Activity2(...原创 2018-06-04 16:57:04 · 807 阅读 · 0 评论 -
浅析Activity状态保存与恢复
接触Activity的时候有一个知识总是感觉用的地方不是特别多,但它也是Activity生命周期的一部分,那就是Activity的状态保存与恢复了,在生命周期中回调的方法是onSaveInstanceState和onRestoreInstanceState。那么什么时候我们需要用到它呢?从字面意义上可判断场景如下:1.关闭Activity(例如按下back键)2.转向后台运行时(例如有电话打来、按...原创 2018-06-20 18:32:24 · 741 阅读 · 0 评论 -
浅析Activity横竖屏切换时的生命周期
1.AndroidManifest没有设置configChanges属性竖屏启动:onCreate -->onStart-->onResume切换横屏:onPause -->onSaveInstanceState -->onStop -->onDestroy -->onCreate-->onStart -->onRestoreInstanceStat...原创 2018-06-01 15:48:34 · 12140 阅读 · 0 评论 -
Activity四种启动模式对比
1.Standard(标准模式-默认)例:我们从StandardActivity跳转到A_Activity,再次跳转到B_Activity,再次跳转到StandardActivity,再次跳转到A_Activity打印的logI/BaseActivity: *****************start*********************I/BaseActivity: onCreateI/Ba...原创 2018-06-19 18:33:11 · 2009 阅读 · 1 评论 -
Fragment的状态保存和恢复
Fragment的状态保存与恢复了解Fragment的状态保存与恢复首先会想到二个问题:1.Fragment什么时候进行状态保存,什么时候进行状态恢复2.保存恢复什么状态,Fragment状态还是View状态。什么时候状态保存?什么时候状态恢复?当Fragment有很大可能被销毁的时候,系统会调用Fragment的 onSaveInstanceState 方法例如:用户按HOM...原创 2018-09-07 16:38:18 · 3278 阅读 · 0 评论 -
EditText属性讲解
EditText常用属性android:hint="请输入数字!"//设置显示在空间上的提示信息android:numeric="integer"//设置只能输入整数,如果是小数则是:decimalandroid:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行。android:password="true"//设置只能输入密码原创 2017-04-29 23:30:00 · 325 阅读 · 0 评论 -
结合getTextBounds方法简析绘制文字时需要注意的地方
我们在自定义View的时候时常会重写onDraw方法,那么在onDraw方法中,绘制文字有时候就用到了paint 的getTextBounds方法来确定文字的位置。而这个方法需要注意两点:1.绘制文字的时候即drawText时源码: /** * Draw the text, with origin at (x,y), using the specified paint. The原创 2018-01-19 13:25:31 · 2232 阅读 · 0 评论 -
startActivity过程的文字讲述
startActivity分为两种,一种是从根Activity即Launcher组件启动,一种是子Activity启动。我们这里分析从Launcher启动新MainActivity的过程。Launcher组件在它自己的进程中,用户在Home界面点击某个应用程序快捷图标时会触发父类Activity的startActivity方法,实质上归根结底是调用了Activity的startActivi原创 2017-05-09 18:17:42 · 260 阅读 · 0 评论 -
Android uses-permission 总结
常用权限:读写存储卡装载和卸载文件系统android.permission.WRITE_EXTERNAL_STORAGEandroid.permission.READ_EXTERNAL_STORAGEandroid.permission.MOUNT_UNMOUNT_FILESYSTEMS网络连接android.perm原创 2017-05-15 14:12:24 · 414 阅读 · 0 评论 -
Android XML布局文件报错Unable to inflate view tag without class attribute
做项目有时候在写布局文件的时候会报Unable to inflate view tag without class attribute 异常,如图那么有可能是布局文件用到了View作为分割线,但是以小写命名的把它改成大写的View即可。原创 2017-05-12 18:29:27 · 880 阅读 · 0 评论 -
Android Studio创建AIDL文件并实现进程间通讯
在Android系统中,跨进程通信是非常普遍的事情,它用到了Binder机制处理进程之间的交互。Binder机制会开放一些接口给java层,供android开发工程师调用进程之间通信。这些接口android封装到了AIDL文件里,当我们项目用到跨进程通信时可以创建.aidl文件,.aidl文件可以协助我们达到跨进程的通信。下面简单介绍用AndroidStudio创建AIDL文件的过程。1.项目原创 2017-04-09 16:36:44 · 2740 阅读 · 0 评论 -
取消本地文件夹与SVN服务器的关联
我们在开发项目中用SVN作为版本管理工具时,从服务器下载到本地的项目是有.svn文件夹的,这个代表是与svn服务器代码相关联的,如果我们想取消本地文件夹与svn服务器的关联,那么有多种方法,这里介绍导入脚本取消关联的方法。首先建立一个文档,内容添加如下:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\原创 2017-01-18 10:32:49 · 8667 阅读 · 0 评论 -
Android Studio logcat 过滤 一个或多个TAG
我们在用LogCat打印log的时候,希望某些TAG不被打印出来,那么就可以用下面的语句,将某些TAG加入黑名单,不能打印在控制台中:^(?!.*(USP)).*$ 这就代表TAG为USP的日志打印不出来,如果想多个TAG不打印那么改为:^(?!.*(USP|hwcomposer)).*$原创 2016-12-21 17:45:35 · 7763 阅读 · 0 评论 -
Android 按返回键不销毁当前Activity
有些软件当我们在主界面按系统返回键的时候是不会销毁当前Activity的,具体实现方式如下: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ moveTaskToBack(true)原创 2017-05-09 22:11:47 · 15371 阅读 · 2 评论 -
Android 匿名内部类造成的内存泄漏
我们在写项目的时候,很容易在一个Actiivty下面利用如下代码: private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { // do something } };这样写很容易原创 2017-07-03 17:08:02 · 7017 阅读 · 2 评论 -
利用Soap2调用webService接口用AS打包后出错小结
项目中用到了xStream将对象封装成xml进行通讯的功能,这里用到了测试一切都正常,将项目用AndroidStudio打包后发现app中总是包连不上网原创 2017-12-05 17:27:48 · 848 阅读 · 0 评论 -
HRMP项目总结
1.在AndroidManifest文件中设置service的exported属性的作用android:exported这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互。如果设置为true,则能够被调用或交互,否则不能。设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定该服务。它的默认值依赖与该服务所包含的过滤器。没有过滤器则意味着该服务只能通过指...原创 2017-05-11 10:45:49 · 633 阅读 · 0 评论 -
利用PermissionsDispatcher解决运行时权限异常
安卓6.0以后申请部分权限需要在应用程序中提醒用户去开通,这些需要运行时申请的权限都是影响到用户信息安全的,6.0之前只要在AndroidManifest注册即可,6.0以后必须先申请,因此增加了安全性,但是给开发人员带来了麻烦。因此从网上找到了一个第三方库PermissionsDispatcher很容易处理运行时的异常。PermissionsDispatchergithub地址:htt...原创 2017-08-14 11:32:35 · 2801 阅读 · 0 评论 -
AndroidStudio通过设置Soft Wrap 实现换行
AndroidStudio设置换行有一个很简单的方法,就是在编写代码区域左侧的显示行数地方右键鼠标,选中Soft-Wrap Current File或者Soft-Wrap All Files即可。最终当代码超过编写区域的宽度时会自动换行。设置:设置后:原创 2017-08-14 16:37:36 · 6789 阅读 · 0 评论 -
点击view两次才触发onclick事件总结
当一个界面中出现两个可以点击的View时,出现两种异常情况:1.连续点击同一个View两次才触发onClick事件。2.点击一个View没有反应,再点击另一个View也没反应,当连续点击同一个View两次才能触发onClick。这是因为在布局xml中设置了View的focusableInTouchMode属性为true,将该属性设置为false点击就正常了。原创 2017-08-11 17:44:05 · 6515 阅读 · 0 评论 -
AndroidStudio常用命令
gradlew build clean --info --> jzl.log 或者 gradlew build clean --info : 查看gradle启动信息adb shell dumpsys actvity : 用来查看Launcher启动MainActivity信息adb logcat -s 标签名 在命令行中查看LOG信息adb shell kill [PID]原创 2017-05-25 21:43:10 · 833 阅读 · 0 评论 -
AndroidStudio 命令行小结
gradlew build clean --info --> jzl.log 或者 gradlew build clean --info : 查看gradle启动信息adb shell dumpsys actvity : 用来查看Launcher启动MainActivity信息adb shell dumpsys activity activities :用来查看当前栈中的Activity...原创 2017-08-17 15:02:11 · 626 阅读 · 0 评论 -
AndroiStudio Error:Execution failed for task ':app:process_360DebugManifest 报错
当我们项目需要加入一个或多个Module作为library时,会报如下异常:Error:Execution failed for task ':app:process_360DebugManifest'.> Manifest merger failed with multiple errors, see logs这说明在合并所有的Manfest文件时冲突了,几率最大的两个原因是1.b原创 2017-08-03 12:17:37 · 12979 阅读 · 3 评论 -
Js 调用 android 本地方法 并传入参数
项目中为了更加灵活,且多变的布局,往往会在Activity中加入h5页面,h5页面离不开android WebView控件,有WebView难免也会与Js进行交互,下面简单介绍与js交互经常出现的问题。首先初始化一个WebView: webView.setVerticalScrollbarOverlay(true); //是否开启本地DOM存储原创 2017-07-31 14:15:18 · 2897 阅读 · 0 评论 -
Github “fatal: remote origin already exists”错误
新建一个Gitlab project,准备将本地Git项目上传到Gitlab时,报本地项目之前已经绑定到了另外一个项目,想起来当时是在Gitlab中clone别人的项目到本地,因此需要重新设置绑定,将项目绑定到新建的project上,从网上看到解决方案于是罗列在下面:TL;DR you should just update the existing remote:$ git remote原创 2017-07-04 13:56:41 · 1060 阅读 · 0 评论 -
浅谈 View 的 OnTouchEvent 和 OnTouchListener 的区别
从源码来看,OnTouchEvent是View的一个方法,处理MotionEvent封装的事件,而OnTouchListener是View内部静态类ListenerInfo的一个实例变量,ListenerInfo封装了一个View各种事件监听器。如图:当ACTION_DOWN事件传递给View时,此时先调用View的dispatchTouchEvent,我们看看dispatch原创 2016-11-21 19:56:58 · 1508 阅读 · 0 评论