自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (1)
  • 收藏
  • 关注

原创 Mac配置Android addr2line环境变量以及使用

终端输入上面的命令 arm-linux-androideabi-addr2line后面加参数,参数后面是报错的so包物理地址。其中00018c60 00019249对应我上面的两个报错地址 ,同一个so包的错可以一个命令写完,中间要加空格隔开。添加完以后,按esc退出insert模式,输入:wq 保存并退出,不保存直接输入:q。这个addr2line路径就在你使用的ndk文件夹下面,具体可以参照我上面的路径。在backtrace里找到自己使用的so包,系统的so包不用管。配置好以后使用就比较简单了。

2023-06-19 17:56:33 1734

原创 android 没有串口读写权限

android 没有串口读写权限

2022-10-08 16:47:34 1719

原创 Android 问题:Installation failed due to: ‘Invalid File:

背景:将一个项目直接复制到了一个新的工程问题:点击运行按钮无法找到apk,无法install问题原因:before launch里没有Gradle-awake解决步骤 :添加一下Gradle-awake即可在弹出的框做如下操作选择Gradle-awake 添加 apply即可...

2021-10-28 15:12:00 4845 5

转载 Java的Byte.parseByte() 16进制转byte的坑

把一个16进制的String转成byte,一开始用的方法是 byte v = Byte.parseByte("EF", 16);然后报了值范围越界的错误java.lang.NumberFormatException: Value out of range for byte: "EF"主要原因是byte 的范围是 -128~127,把 EF 当成正数来转换,结果是 239,就越界了。最后有两个处理方法: byte v = (byte) Integer.parseInt("9D", 16);

2021-08-31 14:10:52 1181 1

原创 Android ViewPager 设置预加载页数

viewpager默认预加载三页,分别是当前-1,当前页,当前+1,当超出预加载页面时,超出的页面会被destory。此时再使用超出预加载的页面会报空指针。myVp.setOffscreenPageLimit(5); //设置预加载页数,左右各5个(默认是1)...

2021-08-16 11:22:47 1123

原创 AndroidStudio git上传屏蔽配置文件

操作在.gitignore 文件里添加需要屏蔽的文件位置即可如下图

2021-08-06 15:12:31 290

转载 ubuntu运行sudo Java 时提示“sudo: java: command not found”。

ubuntu下运行sudo Java 时提示“sudo: java: command not found”。解决:修改/etc/sudoers这个文件命令:sudo gedit /etc/sudoers显示内容如下:## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# direct

2021-03-22 10:23:27 620

原创 adb截屏

使用screencap 命令,对安卓设备的当前屏幕进行截屏,示例:adb shell screencap -p /sdcard/01.png将截屏的图片下载到本地电脑,示例:adb pull /sdcard/01.png默认保存在 c盘user目录下

2021-01-27 09:04:30 512

原创 解决tts播报数字类似155读成一百五十五的办法:将字符串里的每个数字后加一个空格

//将字符串里的数字后加一个空格 StringBuffer b = new StringBuffer(); for (int i = 0; i < s.length(); i++) { String c = String.valueOf(s.charAt(i)); boolean digitsOn

2021-01-23 14:53:15 797

原创 viewPager简单的实现全屏

需求:点击按钮可以将viewpager填充整个屏幕,再次点击则缩小至初始大小。思路:1.使用constraintlayout布局,将屏幕内的其他控件都直接或间接的依赖于view pager控件2.在按钮的点击事件里,动态修改viewPager的LayoutParams的宽度和高度。(相当于放大时将屏幕内其他的控件挤出屏幕)xml代码:<androidx.viewpager.widget.ViewPager android:id="@+id/viewPager"

2021-01-05 16:09:45 441

原创 Android OkHTTP CLEARTEXT communication to host not permitted by network security policy解决

问题: 由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,https 不受影响。为此,OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常: CLEARTEXT communication to " + host + " not pe

2020-12-04 15:11:02 416

原创 Android TextToSpeech: speak failed: not bound to TTS engine

Android的tts在一段时间不使用后,内存会被系统回收。解决的方法,在onInIt方法里进行播报功能 public class MyTTS implements TextToSpeech.OnInitListener { private TextToSpeech mTTS; private Context mContext; private String text; /** * 初始化 * * @param status

2020-12-02 14:00:41 4643 2

原创 Android点击home键之后重新打开app,再次点击桌面图标避免再次重新启动程序的解决办法

问题:点击home键之后,再次打开会进入登录界面,要求重新输入密码。只有安装后就打开app,然后一直不退出,才会出现这个问题。解决办法:在第一个启动页面的onCreate()方法的setContentView()方法启动前加入如下代码:if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return;

2020-11-18 10:53:06 707

原创 [Android Studio]Installation failed due to: ‘-99‘

清理一下后台,释放一下内存就OK了

2020-11-16 13:45:54 699

转载 AndroidStudio INSTALL_FAILED_TEST_ONLY的原因

问题AS进行真机调试时,安装时报INSTALL_FAILED_TEST_ONLY错误,上网搜索后发现是as3.0会在debug包的manifest文件application标签里自动添加 android:testOnly="true"属性解决在项目中的gradle.properties全局配置中设置:android.injected.testOnly=false或者 install时加 -tadb install -t app-debug.apk参考博客...

2020-11-16 13:27:21 439

原创 Android自定义dialog弹窗

主要实现过程就是自定义一个layout布局文件,然后通过LayoutInflater将自定义的布局文件填充进自定义的dialog里。1.layout布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextVi

2020-09-11 13:45:36 442

原创 设置ViewPager的动画切换时间

ViewPager的切换使用时间是系统给定的,如果我们需要自己设置切换使用时长,系统在ViewPager类中是没有给出方法直接设置的,所以我们需要自己通过其他方法来进行设置。经过一番搜索,找到的解决方法是通过反射来自定义切换的时间1.创建一个类继承Scroller/** * 改变动画切换速度 */public class MyScroller extends Scroller { private int mDuration = 1000; public FixedSpeedS

2020-08-28 11:13:48 1197

原创 android sqlite数据库的简单使用

1.继承SQLiteOpenHelper类public class DatabaseHelper extends SQLiteOpenHelper { //带全部参数的构造方法,此构造函数必不可少 public DatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { supe

2020-08-25 15:51:57 180

原创 ViewPager页面切换

最近有一个需求:服务端有两个页面来回切换,页面的内容需要随着客户端的修改而修改,服务端页面切换的时间在客户端可以修改。一开始直接用intent来写,结果到最后内存泄露了…然后换成ViewPager来切换页面1.adapter适配器众所周知,viewpager需要adapter适配器来填充页面在这里插入代码片...

2020-08-25 15:27:19 796

转载 Android:java.lang.OutOfMemoryError

解决Android 内存溢出可以在清单列表添加以下两行: android:hardwareAccelerated="false" android:largeHeap="true"android:hardwareAccelerated=“false” 是禁止启用硬加速android:largeHeap=“true” 是扩大虚拟机内存(最简单粗暴的方式)原文地址...

2020-08-22 13:54:04 310

原创 Android打开系统自带相册权限不足

报错信息:java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/20 from pid=711, uid=10074 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()解决:加以下权限

2020-08-22 12:01:35 1079

原创 Android中使用openFileOutput保存数据至文件夹

直接上代码,存储的路径在默认的工程包名下面/** * 把数据存到文件里 * 存储路径默认为 /data/data/包名/files/ * * @param data 要保存的数据 * @param fileName 文件名 */ private void save(String data, String fileName) { FileOutputStream out = null; Bu

2020-08-21 15:03:13 1379 1

原创 ViewPager+Fragment滑动页面使用的问题记录

1.ViewPager里面Fragment滑动卡顿问题:如果Fragment添加背景图的时候,滑动ViewPager会很卡。如果把背景图去掉,滑动又变得流畅。百度后发现:引用背景图时,图片要放在mipmap包中将图片从drawable中转移到mipmap后,滑动ViewPager就正常了2. Fragment加载的布局页面里的控件无法使用onClick属性会报以下错误:java.lang.IllegalStateException: Could not find method onLogou

2020-08-05 11:30:34 207

原创 Android Fragment和ViewPager绑定使用,做出页面滑动的效果

1.新建两个类继承Fragment复写onCreateView方法,把xml填充进去。public class FirstFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflat

2020-08-04 16:49:02 497 1

原创 Android 设置全屏显示

1.代码修改 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //取消标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //取消状态栏 getWindow().setFlags(WindowManager.LayoutPa

2020-08-04 15:45:58 656

原创 安卓控件显示等宽字体的办法

增加一个属性即可:<TextView android:typeface="monospace"

2020-07-30 16:28:27 223

转载 java 分隔函数split(““,-1)的用途

1.如果字符串最后一位有值,则没有区别,2.若干最后n位都是切割符,split(" “)不会继续切分,split(” ", -1)会继续切分String line = "a b c "; String [] tmp = line.split(" "); System.out.println(tmp.length+"------"); for(int i=0;i<tmp.length;i++){ System.out.println(i+"

2020-07-27 12:04:06 1378

原创 Android TTS 实现中文播报

最近用到了TTS播报的功能,简单封装一下,以此记录。实现TextToSpeech.OnInitListener接口,重写onInit方法。直接贴代码public class MTTSDemo implements TextToSpeech.OnInitListener { private TextToSpeech mTTS; private Context mContext; public MTTSDemo(Context mContext) { this.m

2020-07-23 15:16:08 1647 1

原创 Android adb调试错误:由于目标计算机积极拒绝,无法连接。 (10061)

**问题:**设备是一个安卓盒子,之前使用adb connect没有问题,今天突然连接不上,错误代码10061**解决:**在安卓设备上下载了一个酷安开发者助手,进入开发者选项,把ADB WIFI调试这个选项勾中,再次连接,问题解决。...

2020-07-20 09:58:55 3749

原创 android基于tcp写一个客户端与服务端进行通信

主要分为三部分:1.和server端建立连接。2.接收server端传递的数据。3.发送数据给server端。1.和server端建立连接:其实很简单,只要用把server端的ip和port传给socke就可以了,注意点是耗时操作要开个子线程来进行/** * 连接线程 */ class ConnectServer extends Thread { @Override public void run() { super.

2020-06-28 22:43:43 774

原创 AndroidStudio项目上传至github和码云

一、安装git百度git官网下载安装就好二、上传本地代码1.VCS里选择enable…2.弹框这里选择git3.选择完以后菜单栏多出如下几个按钮蓝色向下箭头是更新项目绿色勾号是commit代码1是选择要commit的代码2是填commit信息4.选择需要上传的代码上传至GitHub5.弹窗输入github账户密码这边我已经登陆了,没有界面6.share到GitHub取个仓库名,点击share就ok了。7.上传代码至码云AndroidStudio的代码上传至码云需

2020-06-19 22:47:19 186

原创 在Linux云服务器上装mysql8.0

1. wget命令获取yum包命令:wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm2. 安装MySQL RPM包命令:yum localinstall mysql80-community-release-el7-1.noarch.rpm在看到安装MySQL8.0安装完成后可到/etc/yum...

2019-08-16 15:33:10 1046

原创 Android 练习 :智能农业项目

Android 练习 :智能农业项目一.项目需求:1、应用需要登录后才能进入应用首页。2、工作台为用户展示最新的功能轮播图3、展示沙盘中Co2、光照、空气、土壤等情况4、用户可在详情页设置沙盘设备的开关来改变沙盘内的Co2、光照、空气、土壤等情况5、用户可在阀值设置页,设置Co2、光照、空气、土壤等阀值。二.项目实现:1.整个项目分为两个主要界面(一个登陆界面,一个主体界面)1)...

2019-05-17 21:30:21 1151 11

原创 Android常用控件

一:textview的常用属性有哪些1 layout_width / layout_height:指定控件的宽度 高度match_parent:填充父窗体wrap_content: 包裹内容设置具体数值 单位dp2 text: 要显示的内容3 background:背景4 lines 可以显示的行数 可以获取全部数据5 maxlines 最大显示的行数,与lines在现实上...

2018-12-12 22:37:21 82

原创 Android基础设置

Android Activity基础知识:1:什么是Activityactivity是一个应用程序组件,提供了用户与程序交互的界面。2:如何把一个activity设置为程序主页面把这一段在要设置为主页面的activity下配置3:activity的各级生命周期:1)运行期(running):用户可见,有焦点,可以交互(当前显示在屏幕的activity(位于任务栈的顶部),用户可...

2018-12-11 22:11:07 108

原创 Android 飞机大战详解与感悟

一.飞机大战的整体思路:飞机大战的主要使用的方法大纲:1.概略:Android的飞机大战用的是SurfaceView()来写,那么首先我们要继承SurfaceView这个类,然后我们还需要用多线程的来运行,那么还要实现Runnable以及SurfaceHolder.CallBack接口。实现多线程就必须要用到run()方法。 由于飞机大战的大部分工作是需要画图片到app里,那么我们又...

2018-05-31 22:27:33 3922 20

原创 Sql Server 数据库的查询

SELECT 列名1[,列名2]....[INTO 新表名]FROM 表名1[,表名2]...[WHERE 条件][GROUP BY 列名列表]                              //按组排序 [HAVING  条件]                                       //一般用GROUP BY 分组,[ORDER BY 列名列表[ASC  |  ...

2018-05-30 22:19:32 314 2

原创 Android学习 SoundPool

SoundPool只能播放短的音乐,常用来做游戏音效或铃声SoundPool使用:1.将音乐文件拷贝到项目里 2.新建一个实例对象 3.使用load()方法,让SoundPool实例加载音效资源,该方法会返回一个整型的soundID 4.使用play()方法播放音效实现思路:1.创建对象:SoundPool只有一个构造方法: SoundPool(int maxS...

2018-05-30 22:15:51 258

原创 Android 学习 SurfaceView

一.SurfaceView(1)作用:SurfaceView 继承了Viwe,有View的一切特性,需要通过Canvas画布来绘制。 在Android里主要用来做游戏。(2)特点:1.不能单独用来显示,必须要依附一个窗体。 2.可以直接在子线程中刷新UI。(3)使用方式:1.在布局里放入SurfaceView 2.实现SurfaceHolder.Callb...

2018-05-29 21:57:52 492

原创 JAVA 语言基础复习10 多线程

一.多线程(1)线程和进程什么是线程? 线程指程序在执行过程中,能够执行程序代码的最小执行单元。 什么是进程? 程序在运行时在内存里开辟的空间。(正在运行的程序,不等于程序)(2)怎么样实现多线程?1.继承Thread类。2.实现Runnable 接口(3)实现多线程的意义多线程的存在,其实是为了提高应用程序的使用率。 a.如果程序只有一条执行路径...

2018-05-27 14:01:06 135

DemoTest.zip

android基于tcp写一个客户端。1.和server端建立连接。2.接收server端传递的数据。3.发送数据给server端。

2020-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除