android audioRecord没释放下次再使用怎么办
    andioRecord正在进行录音操作,此时app被系统回收,导致没有机会释放audioRecord。

下次使用audioRecord进行录音时,初始化就直接失败了,请问谁有解决方案?(系统回收app无法控制,没有找到很好的点在app被回收之前对audioRecord进行释放).谢谢

2个回答

你讲AudioRecord放在Service里面,多个Activity可以共用同一个Service。那么你用的肯定就是同一个autodRecord了。
可能会用到回调函数来解决一些问题

ranzai1986
ranzai1986 问题是,这个service也有可能被回收,那么service也很可能没有机会释放audioRecord。到头来,app重启后,再次使用audioRecord还是不行。
3 年多之前 回复

问题是,这个service也有可能被回收,那么service也很可能没有机会释放audioRecord。到头来,app重启后,再次使用audioRecord还是不行。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android AudioRecord 如何录制 8 bit PCM
如题,AudioRecord初始化的参数只能用AudioFormat.ENCODING_PCM_16BIT,如果不是这个就抛出异常了,有没有人做过录制 8 bit PCM的。
求救!!!!!Android 使用AudioRecord录音不正常
package com.example.testmediarecorder; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.graphics.PixelFormat; import android.media.AudioFormat; import android.media.AudioRecord; import android.media.MediaRecorder; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.view.WindowManager; import android.widget.Button; public class MainActivity extends Activity { // 音频获取源 private int audioSource = MediaRecorder.AudioSource.MIC; // 设置音频采样率,44100是目前的标准,但是某些设备仍然支持22050,16000,11025 private static int sampleRateInHz = 44100; // 设置音频的录制的声道CHANNEL_IN_STEREO为双声道,CHANNEL_CONFIGURATION_MONO为单声道 private static int channelConfig2 = AudioFormat.CHANNEL_CONFIGURATION_MONO; private static int channelConfig = AudioFormat.CHANNEL_IN_STEREO; // 音频数据格式:PCM 16位每个样本。保证设备支持。PCM 8位每个样本。不一定能得到设备支持。 private static int audioFormat = AudioFormat.ENCODING_PCM_16BIT; // 缓冲区字节大小 private int bufferSizeInBytes = 0; private Button Start; private Button Stop; private AudioRecord audioRecord; private boolean isRecord = false;// 设置正在录制的状态 //AudioName裸音频数据文件 private static final String AudioName = "mnt/sdcard/love.raw"; //NewAudioName可播放的音频文件 private static final String NewAudioName = "mnt/sdcard/new.wav"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSLUCENT);// 让界面横屏 requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉界面标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 重新设置界面大小 setContentView(R.layout.activity_main); init(); } private void init() { Start = (Button) this.findViewById(R.id.start); Stop = (Button) this.findViewById(R.id.stop); Start.setOnClickListener(new TestAudioListener()); Stop.setOnClickListener(new TestAudioListener()); creatAudioRecord(); } private void creatAudioRecord() { // 获得缓冲区字节大小 bufferSizeInBytes = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfig, audioFormat); // 创建AudioRecord对象 audioRecord = new AudioRecord(audioSource, sampleRateInHz, channelConfig, audioFormat, bufferSizeInBytes); } class TestAudioListener implements OnClickListener { @Override public void onClick(View v) { if (v == Start) { startRecord(); } if (v == Stop) { stopRecord(); } } } private void startRecord() { audioRecord.startRecording(); // 让录制状态为true isRecord = true; // 开启音频文件写入线程 new Thread(new AudioRecordThread()).start(); } private void stopRecord() { close(); } private void close() { if (audioRecord != null) { System.out.println("stopRecord"); isRecord = false;//停止文件写入 audioRecord.stop(); audioRecord.release();//释放资源 audioRecord = null; } } class AudioRecordThread implements Runnable { @Override public void run() { writeDateTOFile();//往文件中写入裸数据 copyWaveFile(AudioName, NewAudioName);//给裸数据加上头文件 } } /** * 这里将数据写入文件,但是并不能播放,因为AudioRecord获得的音频是原始的裸音频, * 如果需要播放就必须加入一些格式或者编码的头信息。但是这样的好处就是你可以对音频的 裸数据进行处理,比如你要做一个爱说话的TOM * 猫在这里就进行音频的处理,然后重新封装 所以说这样得到的音频比较容易做一些音频的处理。 */ private void writeDateTOFile() { // new一个byte数组用来存一些字节数据,大小为缓冲区大小 byte[] audiodata = new byte[bufferSizeInBytes]; FileOutputStream fos = null; int readsize = 0; try { File file = new File(AudioName); if (file.exists()) { file.delete(); } fos = new FileOutputStream(file);// 建立一个可存取字节的文件 } catch (Exception e) { e.printStackTrace(); } while (isRecord == true) { readsize = audioRecord.read(audiodata, 0, bufferSizeInBytes); if (AudioRecord.ERROR_INVALID_OPERATION != readsize) { try { fos.write(audiodata); } catch (IOException e) { e.printStackTrace(); } } } try { fos.close();// 关闭写入流 } catch (IOException e) { e.printStackTrace(); } } // 这里得到可播放的音频文件 private void copyWaveFile(String inFilename, String outFilename) { FileInputStream in = null; FileOutputStream out = null; long totalAudioLen = 0; long totalDataLen = totalAudioLen + 36; long longSampleRate = sampleRateInHz; int channels = 2; long byteRate = 16 * sampleRateInHz * channels / 8; byte[] data = new byte[bufferSizeInBytes]; try { in = new FileInputStream(inFilename); out = new FileOutputStream(outFilename); totalAudioLen = in.getChannel().size(); totalDataLen = totalAudioLen + 36; WriteWaveFileHeader(out, totalAudioLen, totalDataLen, longSampleRate, channels, byteRate); while (in.read(data) != -1) { out.write(data); } in.close(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 这里提供一个头信息。插入这些信息就可以得到可以播放的文件。 * 为我为啥插入这44个字节,这个还真没深入研究,不过你随便打开一个wav * 音频的文件,可以发现前面的头文件可以说基本一样哦。每种格式的文件都有 * 自己特有的头文件。 */ private void WriteWaveFileHeader(FileOutputStream out, long totalAudioLen, long totalDataLen, long longSampleRate, int channels, long byteRate) throws IOException { byte[] header = new byte[44]; header[0] = 'R'; // RIFF/WAVE header header[1] = 'I'; header[2] = 'F'; header[3] = 'F'; header[4] = (byte) (totalDataLen & 0xff); header[5] = (byte) ((totalDataLen >> 8) & 0xff); header[6] = (byte) ((totalDataLen >> 16) & 0xff); header[7] = (byte) ((totalDataLen >> 24) & 0xff); header[8] = 'W'; header[9] = 'A'; header[10] = 'V'; header[11] = 'E'; header[12] = 'f'; // 'fmt ' chunk header[13] = 'm'; header[14] = 't'; header[15] = ' '; header[16] = 16; // 4 bytes: size of 'fmt ' chunk header[17] = 0; header[18] = 0; header[19] = 0; header[20] = 1; // format = 1 header[21] = 0; header[22] = (byte) channels; header[23] = 0; header[24] = (byte) (longSampleRate & 0xff); header[25] = (byte) ((longSampleRate >> 8) & 0xff); header[26] = (byte) ((longSampleRate >> 16) & 0xff); header[27] = (byte) ((longSampleRate >> 24) & 0xff); header[28] = (byte) (byteRate & 0xff); header[29] = (byte) ((byteRate >> 8) & 0xff); header[30] = (byte) ((byteRate >> 16) & 0xff); header[31] = (byte) ((byteRate >> 24) & 0xff); header[32] = (byte) (2 * 16 / 8); // block align header[33] = 0; header[34] = 16; // bits per sample header[35] = 0; header[36] = 'd'; header[37] = 'a'; header[38] = 't'; header[39] = 'a'; header[40] = (byte) (totalAudioLen & 0xff); header[41] = (byte) ((totalAudioLen >> 8) & 0xff); header[42] = (byte) ((totalAudioLen >> 16) & 0xff); header[43] = (byte) ((totalAudioLen >> 24) & 0xff); out.write(header, 0, 44); } @Override protected void onDestroy() { close(); super.onDestroy(); } } ``` ``` 代码是我在网上找到的 发现录制后的文件如果使用的是单声道声音就会变音,而是用双声道就正常 有大神能告诉下我为什么会这样吗?在线等待中。。。。。
android中使用AudioRecord实现录音
要求:需要实现一直录音,保存的时候需要分段保存 个人想法:先把录制的数据放在缓存中,当缓存数据达到一定的大小就保存在文件中。 本人代码实现不了,希望得到帮忙一下!谢谢了
AudioRecord无法无法获取音频源Could not get audio input for record source
如题,在使用AudioRecord录制音频时报错 08-01 10:35:17.734 9009-9009/com.example.myvoice E/AudioRecord: Could not get audio input for record source 8, sample rate 44100, format 0x1, channel mask 0xc, session 598, flags 0 08-01 10:35:17.734 9009-9009/com.example.myvoice E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22. 08-01 10:35:17.735 9009-9009/com.example.myvoice E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object. 网上找了很久都没找到解决办法,完整代码参考了https://blog.csdn.net/jinzhuojun/article/details/33748031 权限设置如下 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myvoice" android:versionCode="1" android:versionName="1.0"> <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" /> <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT"/> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> ``` 前两个权限设置会报错Permissions with the protection level signature, privileged or signatureOrSystem are only granted to system apps. If an app is a regular non-system app, it will never be able to use these permissions. 希望各位大神可以帮小白解决问题
Android:使用 AudioRecord 采集音频PCM并保存到Treemap中,但播放出现异常
最近在实现一个功能,做游戏客户端的音频采集,播放的。想调用AudioRecord获取PCM并用treemap保存。并用AudioTrack的stream模式尝试播放,但是在播放时却全是噪音。已尝试搜索过问题的解决方法,但都是用文件流的方式,上头要求不要创建文件。代码如下: ``` public class testRecorder{ private static final String TAG = "jqd"; private boolean isRecording; private AudioRecord audioRecord; private AudioTrack audioTrack; private TreeMap<Integer,byte[]> map; private String keyList = ""; //treeMap<Int,byte[]> 帧的内存载体实例 TODO //开始录音 public void startRecord() { final int minBufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE_INHZ, CHANNEL_CONFIG, AUDIO_FORMAT); audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE_INHZ, CHANNEL_CONFIG, AUDIO_FORMAT, minBufferSize); final byte data[] = new byte[minBufferSize]; map = new TreeMap<Integer, byte[]>(); audioRecord.startRecording(); isRecording = true; new Thread(new Runnable() { @Override public void run() { int key = 0; while (isRecording) { key += 1; int read = audioRecord.read(data, 0, minBufferSize); // 如果读取音频数据没有出现错误,就将数据写入到treeMap if (AudioRecord.ERROR_INVALID_OPERATION != read) map.put(key,data); } } }).start(); } //停止录音 public void stopRecord() { isRecording = false; // 释放资源 if (null != audioRecord) { audioRecord.stop(); audioRecord.release(); audioRecord = null; } } //获取序列化数据 TODO public String getRecordData() { return null; } /** * 播放,使用stream模式 */ public void playInModeStream() { /* * SAMPLE_RATE_INHZ 对应pcm音频的采样率 * channelConfig 对应pcm音频的声道 * AUDIO_FORMAT 对应pcm音频的格式 * */ int channelConfig = AudioFormat.CHANNEL_OUT_MONO; final int minBufferSize = AudioTrack.getMinBufferSize(SAMPLE_RATE_INHZ, channelConfig, AUDIO_FORMAT); audioTrack = new AudioTrack( new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build(), new AudioFormat.Builder().setSampleRate(SAMPLE_RATE_INHZ) .setEncoding(AUDIO_FORMAT) .setChannelMask(channelConfig) .build(), minBufferSize, AudioTrack.MODE_STREAM, AudioManager.AUDIO_SESSION_ID_GENERATE); audioTrack.play(); new Thread(new Runnable() { @Override public void run() { byte[] tempBuffer = new byte[minBufferSize]; Iterator iter = map.keySet().iterator(); int key = NULL; while (iter.hasNext()) { key = (Integer) iter.next(); keyList = keyList + key; tempBuffer = map.get(key); audioTrack.write(tempBuffer, 0, tempBuffer.length); } } }).start(); } } ```
使用AudioRecord在安卓设备上开发录音功能
有两个程序用AudioRecord实现录音功能,两个不能能同时开同时录音,但是现在需要实现两个apk同时开的时候可以正常使用,请各位大神指教,有什么解决方法木有?
AudioRecord录音 保存的数据值都为0
同一套安卓代码,换个设备后,打印buffer里保存的数据值都为0,播放没有声音,请问怎么解决?(跟声道个数应该没关系吧?) short[] buffer = new short[recBufSize]; while (isRecording) { readsize = audioRecord.read(buffer, 0, recBufSize); synchronized (inBuf) { for (int i = 0; i < readsize; i += rateX) { inBuf.add(buffer[i]); } } ... }
ios中有类似android audioTrack和audioRecord的类吗?
有一段代码是android的,公司需要把这段代码转换成ios的,就卡在这儿了
Android Studio虚拟机无法运行APP
2019-04-11 19:06:38.604 1881-5714/? E/AudioFlinger: createRecordTrack_l() initCheck failed -12; no control block? 2019-04-11 19:06:38.606 5719-7476/com.google.android.googlequicksearchbox:search E/IAudioFlinger: createRecord returned error -12 2019-04-11 19:06:38.607 5719-7476/com.google.android.googlequicksearchbox:search E/AudioRecord: AudioFlinger could not create record track, status: -12 2019-04-11 19:06:38.607 5719-7476/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -12. 2019-04-11 19:06:38.608 5719-7476/com.google.android.googlequicksearchbox:search E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object. Android Studio上面虚拟机无法运行APP,一直显示keep stopping。这是什么原因?
Android :AudioTrack 播放音频的时候出现错误
想实现udp实时语音通话,一端AudioRecord一边录制一边通过udp发送给另一端,另一端接收以后通过AudioTrack播放,可是有时候播放的时候程序突然崩溃,出现如下错误: A/AudioTrackShared: Assertion failed: !(stepCount <= mUnreleased && mUnreleased <= mFrameCount) A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 26250 (RxCachedThreadS) 我有两部android设备,一部android7.0,一部android4.4,目前只在7.0的设备上频繁出现此问题
Android PCM进行G711编码
如题:鄙人使用Android API AudioRecord录音得到PCM,需求是G.711编码 上网找了很多资料都没找到,找到个相关的录音出来只有哒哒声,使用了http://blog.csdn.net/cazicaquw/article/details/7333186 项目中的G711.JAVA,播放也是哒哒声,求大神赐教!谢谢
android采集音视频到red5
这一段时间在做这个android采集音视频到red5,我使用Camera.PreviewCallback采集画面,AudioRecord采集音频,音频speex编码,勉强能播放了,但是还有很多的问题,比如摄像头的切换,音量,画面不清晰等。 我想请教下,就是android作为视频源发布实时音视频到red5,还有什么别的方案吗,不论是简单的还是复杂的,做提供一些,也能多一些的思路,望广大网友不吝赐教。
关于安卓页面跳转的问题
做了两个页面与页面跳转按钮,二页面想使用ListActivity,但是继承了ListActivity类后闪退 继承Activity时运行正常,但不能看到List效果,请大神帮忙看下代码,感谢 DEBUG 线程 [main](已暂挂(异常 RuntimeException)) ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) 行: 3254 ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) 行: 3350 ActivityThread.access$1100(ActivityThread, ActivityThread$ActivityClientRecord, Intent) 行: 223 ActivityThread$H.handleMessage(Message) 行: 1794 ActivityThread$H(Handler).dispatchMessage(Message) 行: 102 Looper.loop() 行: 148 ActivityThread.main(String[]) 行: 7224 Method.invoke(Object, Object...) 行: 不可用 [本机方法] ZygoteInit$MethodAndArgsCaller.run() 行: 1230 ZygoteInit.main(String[]) 行: 1120 报错日志 04-11 10:03:01.957: E/MotionRecognitionManager(30956): mSContextService = android.hardware.scontext.ISContextService$Stub$Proxy@b530bca 04-11 10:03:01.967: E/MotionRecognitionManager(30956): motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@82fc13b 04-11 10:03:01.967: E/MotionRecognitionManager(30956): motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@82fc13b 04-11 10:03:01.967: D/AndroidRuntime(30956): Shutting down VM 04-11 10:03:01.967: E/AndroidRuntime(30956): FATAL EXCEPTION: main 04-11 10:03:01.967: E/AndroidRuntime(30956): Process: com.example.audiorecord, PID: 30956 04-11 10:03:01.967: E/AndroidRuntime(30956): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.audiorecord/com.example.audiorecord.Activity02}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3254) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.access$1100(ActivityThread.java:223) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.os.Handler.dispatchMessage(Handler.java:102) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.os.Looper.loop(Looper.java:148) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.main(ActivityThread.java:7224) 04-11 10:03:01.967: E/AndroidRuntime(30956): at java.lang.reflect.Method.invoke(Native Method) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 04-11 10:03:01.967: E/AndroidRuntime(30956): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list' 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ListActivity.onContentChanged(ListActivity.java:243) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.Activity.setContentView(Activity.java:2388) 04-11 10:03:01.967: E/AndroidRuntime(30956): at com.example.audiorecord.Activity02.onCreate(Activity02.java:38) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.Activity.performCreate(Activity.java:6877) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) 04-11 10:03:01.967: E/AndroidRuntime(30956): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) 04-11 10:03:01.967: E/AndroidRuntime(30956): ... 9 more Activity1: package com.example.audiorecord; import java.io.File; import java.io.IOException; import android.app.Activity; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.content.Intent; public class RecordActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); super.onCreate(savedInstanceState); /* 设置显示main.xml布局*/ setContentView(R.layout.main); /* findViewById(R.id.button1)取得布局main.xml中的button1 */ Button button = (Button) findViewById(R.id.button1); /* 监听button的事件信息*/ button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { /* 新建一个Intent对象*/ Intent intent = new Intent(); /* 指定intent要启动的类*/ intent.setClass(RecordActivity.this, Activity02.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ RecordActivity.this.finish(); } }); } } Activity2 package com.example.audiorecord; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.ListActivity; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; public class Activity02 extends ListActivity{ //声明 private List<String> items = null;//存放名称 private List<String> paths = null;//存放路径 private String rootPath = "/"; private TextView tv; private Button Back; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置显示main2布局*/ setContentView(R.layout.main2); /* findViewById(R.id.button2)取得布局main.xml中的button2 */ /* 监听button的事件信息*/ tv = (TextView) this.findViewById(R.id.TextView); this.getFileDir(rootPath);//获取rootPath目录下的文件. Back = (Button) findViewById(R.id.back); Back.setOnClickListener(new BackListener()); } class BackListener implements OnClickListener { public void onClick(View v) { Intent intent = new Intent(); /* 指定intent要启动的类*/ intent.setClass(Activity02.this, RecordActivity.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity02.this.finish(); } } public void getFileDir(String filePath) { try{ this.tv.setText("当前路径:"+filePath);// 设置当前所在路径 items = new ArrayList<String>(); paths = new ArrayList<String>(); File f = new File(filePath); File[] files = f.listFiles();// 列出所有文件 // 如果不是根目录,则列出返回根目录和上一目录选项 if (!filePath.equals(rootPath)) { items.add("返回根目录"); paths.add(rootPath); items.add("返回上一层目录"); paths.add(f.getParent()); } // 将所有文件存入list中 if(files != null){ int count = files.length;// 文件个数 for (int i = 0; i < count; i++) { File file = files[i]; items.add(file.getName()); paths.add(file.getPath()); } } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); this.setListAdapter(adapter); }catch(Exception ex){ ex.printStackTrace(); } } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); String path = paths.get(position); File file = new File(path); //如果是文件夹就继续分解 if(file.isDirectory()){ this.getFileDir(path); }else{ new AlertDialog.Builder(this).setTitle("提示").setMessage(file.getName()+" 是一个文件!").setPositiveButton("OK", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which) { } }).show(); } }} MANIFEST <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.audiorecord" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".RecordActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Activity02"></activity> </application> </manifest>
android报错 not enough memory for AudioTrack size=131296
not enough memory for AudioTrack size=131296 我现在把全部音效的部分都注释了 但是还是闪退 ``` 02-16 14:12:11.350 11542-11542/? I/MicroDetectionWorker: #startMicroDetector [speakerMode: 0] 02-16 14:12:11.350 11542-11542/? I/AudioController: Using mInputStreamFactoryBuilder Created new AudioSource 02-16 14:12:11.351 11542-11542/? I/MicroDetectionWorker: onReady 02-16 14:12:11.361 11542-17983/? I/MicroRecognitionRunner: Starting detection. 02-16 14:12:11.361 11542-18036/? I/MicrophoneInputStream: mic_starting SR : 16000 CC : 16 SO : 6 02-16 14:12:11.371 10867-20742/? I/AudioFlinger: AudioFlinger's thread 0xe1483400 tid=20742 ready to run 02-16 14:12:11.371 10867-16145/? E/AudioFlinger: not enough memory for AudioTrack size=131296 02-16 14:12:11.371 10867-16145/? D/MemoryDealer: AudioTrack (0xe5e9c7f0, size=4194304) 0: 0xe5e9ccc0 | 0x00000000 | 0x000200E0 | A 1: 0xe5e9ce50 | 0x000200E0 | 0x000200E0 | A 2: 0xe47be120 | 0x000401C0 | 0x000200E0 | A 3: 0xe47be360 | 0x000602A0 | 0x000200E0 | A 4: 0xe47be4b0 | 0x00080380 | 0x000200E0 | A 5: 0xe47be630 | 0x000A0460 | 0x000200E0 | A 6: 0xe47be7b0 | 0x000C0540 | 0x000200E0 | A 7: 0xe47be960 | 0x000E0620 | 0x000200E0 | A 8: 0xe47beae0 | 0x00100700 | 0x000200E0 | A 9: 0xe5e9ce20 | 0x001207E0 | 0x000200E0 | A 10: 0xe5b07330 | 0x001408C0 | 0x000200E0 | A 11: 0xe5b074d0 | 0x001609A0 | 0x000200E0 | A 12: 0xe5b07670 | 0x00180A80 | 0x000200E0 | A 13: 0xe5b077f0 | 0x001A0B60 | 0x000200E0 | A 14: 0xe5b079b0 | 0x001C0C40 | 0x000200E0 | A 15: 0xe5b07b10 | 0x001E0D20 | 0x000200E0 | A 16: 0xe5b07cf0 | 0x00200E00 | 0x000200E0 | A 17: 0xe47bef10 | 0x00220EE0 | 0x000200E0 | A 18: 0xe447f0a0 | 0x00240FC0 | 0x000200E0 | A 19: 0xe447f290 | 0x002610A0 | 0x000200E0 | A 02-16 14:12:11.371 10867-16145/? E/AudioFlinger: createRecordTrack_l() initCheck failed -12; no control block? 02-16 14:12:11.372 11542-18036/? E/IAudioFlinger: createRecord returned error -12 02-16 14:12:11.372 11542-18036/? E/AudioRecord: AudioFlinger could not create record track, status: -12 02-16 14:12:11.373 11542-18036/? E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -12. 02-16 14:12:11.373 11542-18036/? E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object. 02-16 14:12:11.373 11542-18036/? I/MicrophoneInputStream: mic_started SR : 16000 CC : 16 SO : 6 02-16 14:12:11.375 11542-11542/? I/MicroDetectionWorker: onReady 02-16 14:12:11.376 11542-18036/? I/MicrophoneInputStream: mic_close SR : 16000 CC : 16 SO : 6 02-16 14:12:11.377 11542-17983/? I/MicroRecognitionRunner: Detection finished 02-16 14:12:11.377 11542-17983/? W/ErrorReporter: reportError [type: 211, code: 524300]: Error reading from input stream 02-16 14:12:11.378 11542-17983/? W/ErrorProcessor: onFatalError, processing error from engine(4) com.google.android.apps.gsa.shared.speech.b.g: Error reading from input stream at com.google.android.apps.gsa.staticplugins.microdetection.d.k.a(SourceFile:91) at com.google.android.apps.gsa.staticplugins.microdetection.d.l.run(Unknown Source:14) at com.google.android.libraries.gsa.runner.a.a.b(SourceFile:32) at com.google.android.libraries.gsa.runner.a.c.call(Unknown Source:4) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at com.google.android.apps.gsa.shared.util.concurrent.b.g.run(Unknown Source:4) at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4) at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764) at com.google.android.apps.gsa.shared.util.concurrent.b.i.run(SourceFile:6) Caused by: com.google.android.apps.gsa.shared.exception.GsaIOException: Error code: 393238 | Buffer overflow, no available space. at com.google.android.apps.gsa.speech.audio.Tee.j(SourceFile:103) at com.google.android.apps.gsa.speech.audio.au.read(SourceFile:2) at java.io.InputStream.read(InputStream.java:101) at com.google.android.apps.gsa.speech.audio.ao.run(SourceFile:17) at com.google.android.apps.gsa.speech.audio.an.run(SourceFile:2) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458) at java.util.concurrent.FutureTask.run(FutureTask.java:266)  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)  at java.util.concurrent.FutureTask.run(FutureTask.java:266)  at com.google.android.apps.gsa.shared.util.concurrent.b.g.run(Unknown Source:4)  at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4)  at com.google.android.apps.gsa.shared.util.concurrent.b.aw.run(SourceFile:4)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at java.lang.Thread.run(Thread.java:764)  at com.google.android.apps.gsa.shared.util.concurrent.b.i.run(SourceFile:6)  02-16 14:12:11.379 11542-17983/? I/AudioController: internalShutdown 02-16 14:12:11.379 11542-12096/? I/MicroRecognitionRunner: Stopping hotword detection. 02-16 14:12:11.380 11542-11542/? I/MicroDetector: Keeping mic open: false 02-16 14:12:11.380 11542-11542/? I/MicroDetectionWorker: #onError(false) 02-16 14:12:11.380 11542-20736/? I/DeviceStateChecker: DeviceStateChecker cancelled ```
Android录音文件和下载的音频合成
使用的是AudioRecord进行录音,然后想把录音之后的音频跟下载过来的音频合成一个文件,类似加一个音频头或者尾。 试了直接用流进行简单的拼接,但是不能播放,有没有大神可以指导一下的,快急死了。。
android局域网即时通信
问大家个问题啊 组播multicasesocket audiorecord以及audiotrack我都做过一些小程序 但是现在想做个局域网的聊天 功能有音频传输(像微信那样的)和信息传输 我该怎么做呢?
Android 发生ANR时候在traces根本发现不了哪里错了,求解答
# App里面Log日志报的ANR错: 11-09 16:46:42.739: E/ActivityManager(1309): ANR in com.dingdingpai.paybox (com.dingdingpai.paybox/com.zftpay.paybox.activity.acquirer.nearby.NearByPaySucAct) 11-09 16:46:42.739: E/ActivityManager(1309): PID: 28531 11-09 16:46:42.739: E/ActivityManager(1309): Reason: Input dispatching timed out (Waiting because the touched window has not finished processing the input events that were previously delivered to it.) 11-09 16:46:42.739: E/ActivityManager(1309): Load: 19.43 / 18.81 / 18.84 11-09 16:46:42.739: E/ActivityManager(1309): CPU usage from 36891ms to 0ms ago with 99% awake: 11-09 16:46:42.739: E/ActivityManager(1309): 86% 28531/com.dingdingpai.paybox: 82% user + 3.9% kernel / faults: 179 minor 29 major 11-09 16:46:42.739: E/ActivityManager(1309): 2% 406/adbd: 0.1% user + 1.9% kernel / faults: 1549 minor 11-09 16:46:42.739: E/ActivityManager(1309): 1.1% 213/mediaserver: 0% user + 1.1% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.9% 1695/android.process.media: 0.4% user + 0.4% kernel / faults: 1 minor 11-09 16:46:42.739: E/ActivityManager(1309): 0.8% 1309/system_server: 0.5% user + 0.2% kernel / faults: 853 minor 36 major 11-09 16:46:42.739: E/ActivityManager(1309): 0.6% 2623/mpdecision: 0% user + 0.6% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.4% 20721/kworker/0:2H: 0% user + 0.4% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.4% 1457/com.android.systemui: 0.2% user + 0.1% kernel / faults: 1467 minor 532 major 11-09 16:46:42.739: E/ActivityManager(1309): 0.3% 127/w1_bus_master1: 0% user + 0.3% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.2% 25402/com.xiaomi.gamecenter: 0% user + 0.2% kernel / faults: 4 minor 1 major 11-09 16:46:42.739: E/ActivityManager(1309): 0.1% 1784/com.android.phone: 0.1% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.1% 2248/com.miui.securitycenter.remote: 0.1% user + 0% kernel / faults: 1244 minor 96 major 11-09 16:46:42.739: E/ActivityManager(1309): 0.1% 25659/kworker/0:3H: 0% user + 0.1% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.1% 3/ksoftirqd/0: 0% user + 0.1% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0.1% 30244/kworker/0:2: 0% user + 0.1% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 7/kworker/u:0H: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 26627/logcat: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 30827/kworker/u:4: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 155/mmcqd/0: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 200/servicemanager: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 210/surfaceflinger: 0% user + 0% kernel / faults: 1 minor 1 major 11-09 16:46:42.739: E/ActivityManager(1309): 0% 402/thermal-engine: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 13894/wpa_supplicant: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 30833/kworker/u:12: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 2/kthreadd: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 33/kworker/u:1H: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 222/qrngd: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 336/sdcard: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 400/location-mq: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 821/mdss_fb0: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 1741/com.sohu.inputmethod.sogou.xiaomi: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 1827/com.miui.whetstone: 0% user + 0% kernel / faults: 4 minor 11-09 16:46:42.739: E/ActivityManager(1309): 0% 1860/com.miui.home: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 2138/com.miui.powerkeeper:service: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 2226/com.miui.networkassistant.deamon: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 2590/mcd: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 2957/sogou.mobile.explorer.hotwords: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 13881/MC_Thread: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 0% 13883/RX_Thread: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31241/migration/1: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31242/kworker/1:0: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31243/kworker/1:0H: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31244/ksoftirqd/1: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31254/kworker/1:1: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31433/kworker/1:1H: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31434/kworker/0:1H: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31437/kworker/1:2H: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 55% TOTAL: 49% user + 6% kernel + 0% iowait + 0% softirq 11-09 16:46:42.739: E/ActivityManager(1309): CPU usage from 2259ms to 2795ms later: 11-09 16:46:42.739: E/ActivityManager(1309): 108% 28531/com.dingdingpai.paybox: 107% user + 1.7% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 16% 30950/Thread-1615: 16% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 14% 31058/Thread-1623: 14% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 14% 31096/Thread-1627: 14% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 14% 31176/Thread-1631: 12% user + 1.7% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 12% 30866/Thread-1612: 12% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 12% 31043/Thread-1621: 12% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 12% 31089/Thread-1625: 12% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 12% 31119/Thread-1629: 12% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 1.7% 28554/FileObserver: 1.7% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 7.2% 1309/system_server: 5.4% user + 1.8% kernel / faults: 1 minor 11-09 16:46:42.739: E/ActivityManager(1309): 7.2% 1338/ActivityManager: 3.6% user + 3.6% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 1.8% 213/mediaserver: 0% user + 1.8% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 1.8% 406/adbd: 0% user + 1.8% kernel / faults: 32 minor 11-09 16:46:42.739: E/ActivityManager(1309): 1.8% 406/adbd: 0% user + 1.8% kernel 11-09 16:46:42.739: E/ActivityManager(1309): +0% 31531/adbd: 0% user + 0% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 1.3% 31244/ksoftirqd/1: 0% user + 1.3% kernel 11-09 16:46:42.739: E/ActivityManager(1309): 43% TOTAL: 39% user + 3.4% kernel # 然后我在traces文件里面去找PID: 28531的根本发现不了什么错 # 单独拉出来PID=28531的拉出来如下: "Thread-1633" prio=5 tid=1 VMWAIT | group="main" sCount=1 dsCount=0 obj=0x42b18010 self=0x416f4860 | sysTid=28531 nice=0 sched=0/0 cgrp=apps handle=1074823508 | state=S schedstat=( 23570772482 18096225770 108042 ) utm=1866 stm=491 core=0 #00 pc 00021a98 /system/lib/libc.so (__futex_syscall3+8) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 0000f094 /system/lib/libc.so (__pthread_cond_timedwait+64) #03 pc 0004d663 /system/lib/libdvm.so #04 pc 0003cd0d /system/lib/libdvm.so #05 pc 0004f255 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*, bool)+420) #06 pc 00001063 /system/bin/app_process #07 pc 0000e4bb /system/lib/libc.so (__libc_init+50) #08 pc 00000d80 /system/bin/app_process at dalvik.system.NativeStart.run(Native Method) # 但是根本不知道是哪里报错了啊,好纠结啊,用了腾讯的bugly也根本不行啊,有点崩溃,哪位大神给看下到底出错了啊,拜谢 # 下面是pid=28531的全部traces日志: ----- pid 28531 at 2016-11-09 16:46:39 ----- Cmd line: com.dingdingpai.paybox JNI: CheckJNI is off; workarounds are off; pins=1; globals=498 DALVIK THREADS: (mutexes: tll=0 tsl=0 tscl=0 ghl=0) "Thread-1631" prio=5 tid=26 TIMED_WAIT | group="main" sCount=1 dsCount=0 obj=0x42b0e968 self=0x62c1cec8 | sysTid=31176 nice=0 sched=0/0 cgrp=apps handle=1656772904 | state=S schedstat=( 3633299697 1606457029 4432 ) utm=337 stm=26 core=1 at java.lang.VMThread.sleep(Native Method) at java.lang.Thread.sleep(Thread.java:1013) at java.lang.Thread.sleep(Thread.java:995) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:111) at java.lang.Thread.run(Thread.java:841) "Thread-1633" prio=5 tid=1 VMWAIT | group="main" sCount=1 dsCount=0 obj=0x42b18010 self=0x416f4860 | sysTid=28531 nice=0 sched=0/0 cgrp=apps handle=1074823508 | state=S schedstat=( 23570772482 18096225770 108042 ) utm=1866 stm=491 core=0 #00 pc 00021a98 /system/lib/libc.so (__futex_syscall3+8) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 0000f094 /system/lib/libc.so (__pthread_cond_timedwait+64) #03 pc 0004d663 /system/lib/libdvm.so #04 pc 0003cd0d /system/lib/libdvm.so #05 pc 0004f255 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*, bool)+420) #06 pc 00001063 /system/bin/app_process #07 pc 0000e4bb /system/lib/libc.so (__libc_init+50) #08 pc 00000d80 /system/bin/app_process at dalvik.system.NativeStart.run(Native Method) "Thread-1629" prio=5 tid=34 SUSPENDED | group="main" sCount=1 dsCount=0 obj=0x424ef5a0 self=0x61f39890 | sysTid=31119 nice=0 sched=0/0 cgrp=apps handle=1621144376 | state=S schedstat=( 3689865326 1726587225 4851 ) utm=343 stm=25 core=1 #00 pc 00021a98 /system/lib/libc.so (__futex_syscall3+8) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 0000f094 /system/lib/libc.so (__pthread_cond_timedwait+64) #03 pc 0005655f /system/lib/libdvm.so #04 pc 00056b21 /system/lib/libdvm.so (dvmChangeStatus(Thread*, ThreadStatus)+34) #05 pc 00055c81 /system/lib/libdvm.so #06 pc 00055ce7 /system/lib/libdvm.so (dvmThreadSleep(unsigned long long, unsigned int)+62) #07 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) at java.lang.VMThread.sleep(Native Method) at java.lang.Thread.sleep(Thread.java:1013) at java.lang.Thread.sleep(Thread.java:995) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:111) at java.lang.Thread.run(Thread.java:841) "Thread-1627" prio=5 tid=33 MONITOR | group="main" sCount=1 dsCount=0 obj=0x428e4638 self=0x61f1c890 | sysTid=31096 nice=0 sched=0/0 cgrp=apps handle=1643236584 | state=S schedstat=( 3674041640 1764672973 5137 ) utm=332 stm=35 core=1 at android.os.MessageQueue.enqueueMessage(MessageQueue.java:~318) - waiting to lock <0x4244ee90> (a android.os.MessageQueue) held by tid=30 (Thread-1623) at android.os.Handler.enqueueMessage(Handler.java:626) at android.os.Handler.sendMessageAtTime(Handler.java:595) at android.os.Handler.sendMessageDelayed(Handler.java:566) at android.os.Handler.sendEmptyMessageDelayed(Handler.java:530) at android.os.Handler.sendEmptyMessage(Handler.java:515) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:112) at java.lang.Thread.run(Thread.java:841) "Thread-1625" prio=5 tid=32 MONITOR | group="main" sCount=1 dsCount=0 obj=0x424e1200 self=0x61ee9860 | sysTid=31089 nice=0 sched=0/0 cgrp=apps handle=1643027640 | state=S schedstat=( 3708275048 1726739259 5283 ) utm=337 stm=33 core=1 at android.os.MessageQueue.enqueueMessage(MessageQueue.java:~318) - waiting to lock <0x4244ee90> (a android.os.MessageQueue) held by tid=30 (Thread-1623) at android.os.Handler.enqueueMessage(Handler.java:626) at android.os.Handler.sendMessageAtTime(Handler.java:595) at android.os.Handler.sendMessageDelayed(Handler.java:566) at android.os.Handler.sendEmptyMessageDelayed(Handler.java:530) at android.os.Handler.sendEmptyMessage(Handler.java:515) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:112) at java.lang.Thread.run(Thread.java:841) "Thread-1623" prio=5 tid=30 SUSPENDED | group="main" sCount=1 dsCount=0 obj=0x426c2158 self=0x62c222b8 | sysTid=31058 nice=0 sched=0/0 cgrp=apps handle=1656829440 | state=S schedstat=( 3700224020 1786775127 5578 ) utm=344 stm=26 core=1 at android.os.MessageQueue.enqueueMessage(MessageQueue.java:~343) at android.os.Handler.enqueueMessage(Handler.java:626) at android.os.Handler.sendMessageAtTime(Handler.java:595) at android.os.Handler.sendMessageDelayed(Handler.java:566) at android.os.Handler.sendEmptyMessageDelayed(Handler.java:530) at android.os.Handler.sendEmptyMessage(Handler.java:515) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:112) at java.lang.Thread.run(Thread.java:841) "Thread-1621" prio=5 tid=29 MONITOR | group="main" sCount=1 dsCount=0 obj=0x42b37f08 self=0x62c5c1d0 | sysTid=31043 nice=0 sched=0/0 cgrp=apps handle=1621199688 | state=S schedstat=( 3730750307 1943187029 5817 ) utm=347 stm=26 core=1 at android.os.MessageQueue.enqueueMessage(MessageQueue.java:~318) - waiting to lock <0x4244ee90> (a android.os.MessageQueue) held by tid=30 (Thread-1623) at android.os.Handler.enqueueMessage(Handler.java:626) at android.os.Handler.sendMessageAtTime(Handler.java:595) at android.os.Handler.sendMessageDelayed(Handler.java:566) at android.os.Handler.sendEmptyMessageDelayed(Handler.java:530) at android.os.Handler.sendEmptyMessage(Handler.java:515) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:112) at java.lang.Thread.run(Thread.java:841) "AudioRecord" prio=10 tid=28 NATIVE | group="main" sCount=1 dsCount=0 obj=0x424969d0 self=0x62c207d0 | sysTid=30963 nice=-16 sched=0/0 cgrp=apps handle=1621178400 | state=S schedstat=( 4357705 17892868 76 ) utm=0 stm=0 core=0 #00 pc 00021a9c /system/lib/libc.so (__futex_syscall3+12) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 00051bbd /system/lib/libmedia.so (android::AudioRecord::AudioRecordThread::threadLoop()+100) #03 pc 0000ea4d /system/lib/libutils.so (android::Thread::_threadLoop(void*)+104) #04 pc 0004e485 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68) #05 pc 0000e5ef /system/lib/libutils.so #06 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #07 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "Thread-1615" prio=5 tid=25 SUSPENDED | group="main" sCount=1 dsCount=0 obj=0x42b044e0 self=0x62c6ae78 | sysTid=30950 nice=0 sched=0/0 cgrp=apps handle=1615996768 | state=S schedstat=( 8791873112 4710523269 7727 ) utm=851 stm=28 core=1 #00 pc 00021a98 /system/lib/libc.so (__futex_syscall3+8) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 0000f094 /system/lib/libc.so (__pthread_cond_timedwait+64) #03 pc 0005655f /system/lib/libdvm.so #04 pc 00056b21 /system/lib/libdvm.so (dvmChangeStatus(Thread*, ThreadStatus)+34) #05 pc 0004c3b3 /system/lib/libdvm.so #06 pc 0004e073 /system/lib/libdvm.so #07 pc 00083623 /system/lib/libandroid_runtime.so #08 pc 0008365b /system/lib/libandroid_runtime.so #09 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112) #10 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) #11 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) at android.media.AudioRecord.native_read_in_short_array(Native Method) at android.media.AudioRecord.read(AudioRecord.java:663) at com.tuner168.ble_bracelet_sim.audio.RecognizeThread.run(RecognizeThread.java:102) "Timer-2" prio=5 tid=20 TIMED_WAIT | group="main" sCount=1 dsCount=0 obj=0x42b1baf8 self=0x6057c798 | sysTid=30909 nice=0 sched=0/0 cgrp=apps handle=1621135960 | state=S schedstat=( 20484377 5202030 40 ) utm=2 stm=0 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x42b1baf8> (a java.util.Timer$TimerImpl) at java.lang.Object.wait(Object.java:401) at java.util.Timer$TimerImpl.run(Timer.java:238) "pool-3-thread-2" prio=5 tid=24 TIMED_WAIT | group="main" sCount=1 dsCount=0 obj=0x4292c330 self=0x6057d638 | sysTid=30867 nice=0 sched=0/0 cgrp=apps handle=1658670960 | state=S schedstat=( 32660106 13747029 65 ) utm=3 stm=0 core=1 at java.lang.Object.wait(Native Method) - waiting on <0x4292c450> (a java.lang.VMThread) held by tid=24 (pool-3-thread-2) at java.lang.Thread.parkFor(Thread.java:1205) at sun.misc.Unsafe.park(Unsafe.java:325) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:429) at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:331) at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:910) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) "Thread-1612" prio=5 tid=23 MONITOR | group="main" sCount=1 dsCount=0 obj=0x42927908 self=0x62dd56c0 | sysTid=30866 nice=0 sched=0/0 cgrp=apps handle=1656995496 | state=S schedstat=( 3839698317 1806337748 7682 ) utm=350 stm=33 core=1 at android.os.MessageQueue.enqueueMessage(MessageQueue.java:~318) - waiting to lock <0x4244ee90> (a android.os.MessageQueue) held by tid=30 (Thread-1623) at android.os.Handler.enqueueMessage(Handler.java:626) at android.os.Handler.sendMessageAtTime(Handler.java:595) at android.os.Handler.sendMessageDelayed(Handler.java:566) at android.os.Handler.sendEmptyMessageDelayed(Handler.java:530) at android.os.Handler.sendEmptyMessage(Handler.java:515) at com.zftpay.paybox.widget.customsialog.LoadingDialogView$UpdataThread.run(LoadingDialogView.java:112) at java.lang.Thread.run(Thread.java:841) "RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@428b4460" daemon prio=5 tid=19 WAIT | group="main" sCount=1 dsCount=0 obj=0x428b72f8 self=0x62c0a5d8 | sysTid=30852 nice=0 sched=0/0 cgrp=apps handle=1616152720 | state=S schedstat=( 305990 46979 6 ) utm=0 stm=0 core=2 at java.lang.Object.wait(Native Method) - waiting on <0x428b6338> (a java.lang.ref.ReferenceQueue) at java.lang.Object.wait(Object.java:401) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73) at org.apache.http.impl.conn.tsccm.RefQueueWorker.run(RefQueueWorker.java:102) at java.lang.Thread.run(Thread.java:841) "CommunicationWithDeviceThread" prio=5 tid=21 NATIVE | group="main" sCount=1 dsCount=0 obj=0x427db388 self=0x60517ec0 | sysTid=28580 nice=0 sched=0/0 cgrp=apps handle=1615950296 | state=S schedstat=( 281667 0 2 ) utm=0 stm=0 core=0 #00 pc 000218d0 /system/lib/libc.so (epoll_wait+12) #01 pc 0001081b /system/lib/libutils.so (android::Looper::pollInner(int)+98) #02 pc 00010a45 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) #03 pc 0006bb19 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) #04 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112) #05 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) #06 pc 000297e0 /system/lib/libdvm.so #07 pc 00030c6c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76) #08 pc 0002e304 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) #09 pc 00063431 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336) #10 pc 00063455 /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20) #11 pc 00058133 /system/lib/libdvm.so #12 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #13 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:138) at android.os.Looper.loop(Looper.java:123) at android.os.HandlerThread.run(HandlerThread.java:61) "Binder_4" prio=5 tid=18 NATIVE | group="main" sCount=1 dsCount=0 obj=0x4266e1c8 self=0x60525cf0 | sysTid=28564 nice=0 sched=0/0 cgrp=apps handle=1616009896 | state=S schedstat=( 17960418 45819164 121 ) utm=1 stm=0 core=3 #00 pc 0002071c /system/lib/libc.so (__ioctl+8) #01 pc 0002cf83 /system/lib/libc.so (ioctl+14) #02 pc 0001d471 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140) #03 pc 0001db7b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6) #04 pc 0001dc11 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48) #05 pc 00021a89 /system/lib/libbinder.so #06 pc 0000eabd /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216) #07 pc 0004e485 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68) #08 pc 0000e5ef /system/lib/libutils.so #09 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #10 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "WifiManager" prio=5 tid=17 NATIVE | group="main" sCount=1 dsCount=0 obj=0x42573cd8 self=0x60524008 | sysTid=28561 nice=0 sched=0/0 cgrp=apps handle=1616004192 | state=S schedstat=( 17615048 65286354 145 ) utm=0 stm=1 core=0 #00 pc 000218d0 /system/lib/libc.so (epoll_wait+12) #01 pc 0001081b /system/lib/libutils.so (android::Looper::pollInner(int)+98) #02 pc 00010a45 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) #03 pc 0006bb19 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) #04 pc 0002034c /system/lib/libdvm.so (dvmPlatformInvoke+112) #05 pc 00050fcf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) #06 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:138) at android.os.Looper.loop(Looper.java:123) at android.os.HandlerThread.run(HandlerThread.java:61) "Binder_3" prio=5 tid=16 NATIVE | group="main" sCount=1 dsCount=0 obj=0x425317f8 self=0x60514010 | sysTid=28559 nice=0 sched=0/0 cgrp=apps handle=1615936968 | state=S schedstat=( 17389168 46019273 138 ) utm=0 stm=1 core=3 #00 pc 0002071c /system/lib/libc.so (__ioctl+8) #01 pc 0002cf83 /system/lib/libc.so (ioctl+14) #02 pc 0001d471 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140) #03 pc 0001db7b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6) #04 pc 0001dc11 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48) #05 pc 00021a89 /system/lib/libbinder.so #06 pc 0000eabd /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216) #07 pc 0004e485 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68) #08 pc 0000e5ef /system/lib/libutils.so #09 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #10 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "java.lang.ProcessManager" daemon prio=5 tid=15 WAIT | group="main" sCount=1 dsCount=0 obj=0x4252fd28 self=0x60513768 | sysTid=28557 nice=0 sched=0/0 cgrp=apps handle=1615934240 | state=S schedstat=( 5171247 879583 37 ) utm=0 stm=0 core=1 at java.lang.Object.wait(Native Method) - waiting on <0x4252fb50> (a java.util.HashMap) at java.lang.Object.wait(Object.java:364) at java.lang.ProcessManager.waitForMoreChildren(ProcessManager.java:140) at java.lang.ProcessManager.watchChildren(ProcessManager.java:105) at java.lang.ProcessManager.access$000(ProcessManager.java:40) at java.lang.ProcessManager$1.run(ProcessManager.java:58) "FileObserver" prio=5 tid=14 SUSPENDED | group="main" sCount=1 dsCount=0 obj=0x424c8d30 self=0x5f551718 | sysTid=28554 nice=0 sched=0/0 cgrp=apps handle=1616506096 | state=S schedstat=( 2674007 4621617 16 ) utm=0 stm=0 core=0 at java.lang.StackTraceElement.<init>(StackTraceElement.java:~61) at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:579) at java.lang.Thread.getAllStackTraces(Thread.java:521) at com.tencent.bugly.proguard.a.a(BUGLY:943) at com.tencent.bugly.crashreport.crash.anr.b.a(BUGLY:395) at com.tencent.bugly.crashreport.crash.anr.b$1.onEvent(BUGLY:462) at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125) at android.os.FileObserver$ObserverThread.observe(Native Method) at android.os.FileObserver$ObserverThread.run(FileObserver.java:88) "BUGLY_THREAD" prio=5 tid=12 TIMED_WAIT | group="main" sCount=1 dsCount=0 obj=0x42491a18 self=0x60297378 | sysTid=28553 nice=0 sched=0/0 cgrp=apps handle=1599414472 | state=S schedstat=( 13214376 14080415 57 ) utm=1 stm=0 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x42491b38> (a java.lang.VMThread) held by tid=12 (BUGLY_THREAD) at java.lang.Thread.parkFor(Thread.java:1205) at sun.misc.Unsafe.park(Unsafe.java:325) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:197) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2056) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1062) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) "BUGLY_THREAD" prio=5 tid=13 WAIT | group="main" sCount=1 dsCount=0 obj=0x4248fea8 self=0x6028f940 | sysTid=28552 nice=0 sched=0/0 cgrp=apps handle=1613299096 | state=S schedstat=( 109396885 61975669 283 ) utm=3 stm=7 core=2 at java.lang.Object.wait(Native Method) - waiting on <0x4248ffc8> (a java.lang.VMThread) held by tid=13 (BUGLY_THREAD) at java.lang.Thread.parkFor(Thread.java:1205) at sun.misc.Unsafe.park(Unsafe.java:325) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1057) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) "BUGLY_THREAD" prio=5 tid=11 WAIT | group="main" sCount=1 dsCount=0 obj=0x4247f7d8 self=0x5f550d68 | sysTid=28550 nice=0 sched=0/0 cgrp=apps handle=1599410624 | state=S schedstat=( 25886336 22998661 313 ) utm=1 stm=1 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x4247f9c8> (a java.lang.VMThread) held by tid=11 (BUGLY_THREAD) at java.lang.Thread.parkFor(Thread.java:1205) at sun.misc.Unsafe.park(Unsafe.java:325) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1057) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:778) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) "Binder_2" prio=5 tid=10 NATIVE | group="main" sCount=1 dsCount=0 obj=0x4244dec0 self=0x5f4d4008 | sysTid=28545 nice=0 sched=0/0 cgrp=apps handle=1596783464 | state=S schedstat=( 19653653 26620362 131 ) utm=1 stm=0 core=3 #00 pc 0002071c /system/lib/libc.so (__ioctl+8) #01 pc 0002cf83 /system/lib/libc.so (ioctl+14) #02 pc 0001d471 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140) #03 pc 0001db7b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6) #04 pc 0001dc11 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48) #05 pc 00021a89 /system/lib/libbinder.so #06 pc 0000eabd /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216) #07 pc 0004e485 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68) #08 pc 0000e5ef /system/lib/libutils.so #09 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #10 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "Binder_1" prio=5 tid=9 NATIVE | group="main" sCount=1 dsCount=0 obj=0x4244dd20 self=0x5f2cf250 | sysTid=28544 nice=0 sched=0/0 cgrp=apps handle=1596780552 | state=S schedstat=( 17057920 52076197 126 ) utm=1 stm=0 core=3 #00 pc 0002071c /system/lib/libc.so (__ioctl+8) #01 pc 0002cf83 /system/lib/libc.so (ioctl+14) #02 pc 0001d471 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+140) #03 pc 0001db7b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6) #04 pc 0001dc11 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48) #05 pc 00021a89 /system/lib/libbinder.so #06 pc 0000eabd /system/lib/libutils.so (android::Thread::_threadLoop(void*)+216) #07 pc 0004e485 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+68) #08 pc 0000e5ef /system/lib/libutils.so #09 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #10 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "FinalizerWatchdogDaemon" daemon prio=5 tid=8 WAIT | group="system" sCount=1 dsCount=0 obj=0x424487f0 self=0x5bde28b0 | sysTid=28541 nice=0 sched=0/0 cgrp=apps handle=1541287176 | state=S schedstat=( 451876 609218 14 ) utm=0 stm=0 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x417de668> (a java.lang.Daemons$FinalizerWatchdogDaemon) at java.lang.Object.wait(Object.java:364) at java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:230) at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:207) at java.lang.Thread.run(Thread.java:841) "FinalizerDaemon" daemon prio=5 tid=7 WAIT | group="system" sCount=1 dsCount=0 obj=0x42448640 self=0x5bde2008 | sysTid=28540 nice=0 sched=0/0 cgrp=apps handle=1541284960 | state=S schedstat=( 14235421 8436818 47 ) utm=1 stm=0 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x417c97d8> (a java.lang.ref.ReferenceQueue) at java.lang.Object.wait(Object.java:401) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73) at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170) at java.lang.Thread.run(Thread.java:841) "ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT | group="system" sCount=1 dsCount=0 obj=0x424484d8 self=0x5ec14460 | sysTid=28539 nice=0 sched=0/0 cgrp=apps handle=1589725368 | state=S schedstat=( 2807867 4756510 18 ) utm=0 stm=0 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x417c9700> at java.lang.Object.wait(Object.java:364) at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:130) at java.lang.Thread.run(Thread.java:841) "Compiler" daemon prio=5 tid=5 VMWAIT | group="system" sCount=1 dsCount=0 obj=0x424483e8 self=0x5ec14008 | sysTid=28538 nice=0 sched=0/0 cgrp=apps handle=1541294864 | state=S schedstat=( 374628429 196207032 2486 ) utm=19 stm=18 core=0 #00 pc 00021a98 /system/lib/libc.so (__futex_syscall3+8) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 0000f094 /system/lib/libc.so (__pthread_cond_timedwait+64) #03 pc 00076c4b /system/lib/libdvm.so #04 pc 00057815 /system/lib/libdvm.so #05 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #06 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "JDWP" daemon prio=5 tid=4 VMWAIT | group="system" sCount=1 dsCount=0 obj=0x42448300 self=0x58b35830 | sysTid=28537 nice=0 sched=0/0 cgrp=apps handle=1487448632 | state=S schedstat=( 2560678 3524426 20 ) utm=0 stm=0 core=0 #00 pc 0002086c /system/lib/libc.so (select+20) #01 pc 0006433f /system/lib/libdvm.so #02 pc 00066e91 /system/lib/libdvm.so #03 pc 00057815 /system/lib/libdvm.so #04 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #05 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) "Signal Catcher" daemon prio=5 tid=3 RUNNABLE | group="system" sCount=0 dsCount=0 obj=0x42448208 self=0x5bdde338 | sysTid=28536 nice=0 sched=0/0 cgrp=apps handle=1589714456 | state=R schedstat=( 21778283 13446303 35 ) utm=1 stm=1 core=1 at dalvik.system.NativeStart.run(Native Method) "GC" daemon prio=5 tid=2 VMWAIT | group="system" sCount=1 dsCount=0 obj=0x42448128 self=0x58b37830 | sysTid=28535 nice=0 sched=0/0 cgrp=apps handle=1541266408 | state=S schedstat=( 290835661 1780590841 14137 ) utm=2 stm=27 core=0 #00 pc 00021a98 /system/lib/libc.so (__futex_syscall3+8) #01 pc 0000f034 /system/lib/libc.so (__pthread_cond_timedwait_relative+48) #02 pc 0000f094 /system/lib/libc.so (__pthread_cond_timedwait+64) #03 pc 0007560f /system/lib/libdvm.so #04 pc 00057815 /system/lib/libdvm.so #05 pc 0000d240 /system/lib/libc.so (__thread_entry+72) #06 pc 0000d3d8 /system/lib/libc.so (pthread_create+240) at dalvik.system.NativeStart.run(Native Method) NATIVE THREADS: "gdingpai.paybox" sysTid=30946 nice=0 sched=0/0 cgrp=apps | state=S schedstat=( 9895416 257812 7 ) utm=0 stm=0 core=0 "gdingpai.paybox" sysTid=30947 nice=0 sched=0/0 cgrp=apps | state=S schedstat=( 49167 106614 2 ) utm=0 stm=0 core=0 "gdingpai.paybox" sysTid=30948 nice=0 sched=0/0 cgrp=apps | state=S schedstat=( 60885 0 2 ) utm=0 stm=0 core=0 "gdingpai.paybox" sysTid=30949 nice=0 sched=0/0 cgrp=apps | state=S schedstat=( 43230 9980989 3 ) utm=0 stm=0 core=0 "GL updater" sysTid=31132 nice=-10 sched=0/0 cgrp=apps | state=S schedstat=( 364636 305104 4 ) utm=0 stm=0 core=1 ----- end 28531 -----
新手关于安卓录音问题
安卓AudioRecord()创建时提示用户开启权限,用户拒绝程序就挂了,怎么解决??
【求助】Android录音时如何屏蔽本机正在播放的声音?
使用AudioRecord录音,录音的时候,APP也会播放一个提示音,这个提示音如何屏蔽?
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库 回到首页 目录: Python语言高频重点汇总 目录: 1. 函数-传参 2. 元类 3. @staticmethod和@classmethod两个装饰器 4. 类属性和实例属性 5. Python的自省 6. 列表、集合、字典推导式 7. Python中单下划线和双下划线 8. 格式化字符串中的%和format 9. 迭代器和生成器 10...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
ES6基础-ES6的扩展
进行对字符串扩展,正则扩展,数值扩展,函数扩展,对象扩展,数组扩展。 开发环境准备: 编辑器(VS Code, Atom,Sublime)或者IDE(Webstorm) 浏览器最新的Chrome 字符串的扩展: 模板字符串,部分新的方法,新的unicode表示和遍历方法: 部分新的字符串方法 padStart,padEnd,repeat,startsWith,endsWith,includes 字...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Qt实践录:开篇
本系列文章介绍笔者的Qt实践之路。
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
一条链接即可让黑客跟踪你的位置! | Seeker工具使用
搬运自:冰崖的部落阁(icecliffsnet) 严正声明:本文仅限于技术讨论,严禁用于其他用途。 请遵守相对应法律规则,禁止用作违法途径,出事后果自负! 上次写的防社工文章里边提到的gps定位信息(如何防止自己被社工或人肉) 除了主动收集他人位置信息以外,我们还可以进行被动收集 (没有技术含量) Seeker作为一款高精度地理位置跟踪工具,同时也是社交工程学(社会工程学)爱好者...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问