Articles of android 5.1.1 lollipop

Android XML:android:elevation vs. app:elevation

我什么时候使用android:elevation和app:elevation ? 这两者有什么区别?

Android 5.x ClassNotFoundException在6.0+上运行正常

我已将项目的minSdkVersion从19更新为21.这导致5.0 / 5.1设备上的问题,我无法运行该应用程序。 我一直在我的Application类上得到一个ClassNotFoundException。 完整日志,应用程序类和gradle文件如下所示。 如果我将我的项目还原为minSdkVersion 19,那么应用程序将在4.4+上运行,没有任何问题。 我试过的 清洗/重建 更新和降级构建工具版本 跨项目的所有支持库都具有相同的版本号 使我所有的清单类相对而绝对 更新了所有Sdk和构建工具 日志 04-27 14:37:07.152 6278-6278/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.package.testapp, PID: 6278 java.lang.RuntimeException: Unable to instantiate application com.package.TestApplication: java.lang.ClassNotFoundException: Didn’t find class “com.package.Application” on path: DexPathList[[zip file “/data/app/com.package.testapp-1/base.apk”],nativeLibraryDirectories=[/data/app/com.package.testapp-1/lib/x86_64, /vendor/lib64, /system/lib64]] at android.app.LoadedApk.makeApplication(LoadedApk.java:563) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526) at android.app.ActivityThread.access$1500(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) […]

在Android 5中工作的button样式,但不是Android 4

我有一个蓝色背景的button样式,在API 22中工作正常,但同样的button以深灰色显示,没有Android 4中的应用样式。这是我的风格: <style name="MyApp.Plain" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/background</item> <item name="android:buttonStyle">@style/MyApp.Widget.Button</item> </style> <style name="MyApp.Widget.Button" parent="@android:style/Widget.Button"> <item name="android:background">@drawable/btn_blue</item> <item name="android:focusable">true</item> <item name="android:clickable">true</item> <item name="android:textStyle">bold</item> <item name="android:textSize">14sp</item> <item name="android:textColor">#fff</item> <item name="android:gravity">center_vertical|center_horizontal</item> </style> 我的btn_blue.xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_disabled" android:state_enabled="false"/> <item android:drawable="@drawable/btn_pressed" android:state_enabled="true" android:state_pressed="true"/> <item android:drawable="@drawable/btn_normal_blue" android:state_enabled="true"/> </selector> 和btn_normal_blue.xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="90" android:endColor="#368ac6" android:startColor="#0e58a4" […]

Android是强制杀死我的启动BT连接

我已经用Apache cordova为Android写了一个启动器应用程序。 这是一个类似自助亭的应用程序,基本上它工作正常。 不幸的是有一个问题:在某些情况下Android是强制杀死我的应用程序,并立即重新启动它。 – 加载大概需要3秒钟,在那里显示一个白色的屏幕。 它开始全新(onPause,onResume不被调用)。 在日志中我发现: V/WindowManager( 657): Changing focus from Window{42544288 u0 com.android.settings/com.android.settings.SubSettings} to Window{428ad610 u0 com.android.settings/com.android.settings.SubSettings} Callers=com.android.server.wm.WindowManagerService.addWindow:2665 com.android.server.wm.Session.addToDisplay:163 android.view.IWindowSession$Stub.onTransact:111 com.android.server.wm.Session.onTransact:126 I/WindowManager( 657): Gaining focus: Window{428ad610 u0 com.android.settings/com.android.settings.SubSettings} … I/ActivityManager( 657): Force stopping com.myapp.name appid=10119 user=0: clear data I/ActivityManager( 657): Killing 2639:com.myapp.name/u0a119 (adj 7): stop com.myapp.name I/ActivityManager( 657): Force finishing activity ActivityRecord{42542218 […]

共享元素转换成RecyclerView中的视图,可能吗?

鉴于具有共享元素的Activity的正常棒棒糖转换,例如https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition ,通常是从View到Recycler View转换到一个目标活动的正常视图。 然而,如果有针对性的观点,也是在一个回收视图viewholder,有没有办法使这种可能(即提供有针对性的观点ActivityOptionsCompat)? 谢谢!

Android MediaCodec在asynchronous模式下进行编码和解码

我试图解码一个文件中的video,并将其编码为与MediaCodec不同的格式,支持API Level 21及更高版本(Android OS 5.0 Lollipop)的新asynchronous模式 。 在诸如Big Flake ,Google的Grafika以及StackOverflow上的几十个答案等站点上,有许多同步模式的例子,但是它们都不支持asynchronous模式。 在这个过程中,我不需要显示video。 我相信一般的过程是用MediaExtractor读取文件作为MediaCodec (解码器)的input,允许解码器的输出渲染到也是MediaCodec (编码器)的共享input的Surface中,然后最后通过MediaMuxer编写Encoder输出文件。 Surface是在编码器设置过程中创build的,并与解码器共享。 我可以把video解码成一个TextureView ,但是用编码器而不是屏幕共享Surface还没有成功。 我为我的两个编解码器设置了MediaCodec.Callback() 。 我相信一个问题是我不知道在编码器的callback的onInputBufferAvailable()函数中onInputBufferAvailable() 。 我不知道如何(或知道如何)将数据从Surface复制到编码器中 – 这应该是自动发生的(就像在解码器输出上用codec.releaseOutputBuffer(outputBufferId, true); )所做的那样)。 然而,我相信onInputBufferAvailable需要调用codec.queueInputBuffer才能正常工作。 我只是不知道如何设置参数,而不像解码端使用的MediaExtractor那样获取数据。 如果您有一个打开video文件的示例,对其进行解码,使用asynchronousMediaCodeccallback将其编码为不同的分辨率或格式,然后将其另存为文件 ,请分享您的示例代码。 === 编辑 === 这是一个在asynchronous模式下我正在尝试做同步模式的工作示例:ExtractDecodeEditEncodeMuxTest.java: https ://android.googlesource.com/platform/cts/+/jb-mr2-release/tests/tests/media /src/android/media/cts/ExtractDecodeEditEncodeMuxTest.java这个例子是在我的应用程序

Toast:“this”和“getApplicationContext()”之间的区别?

我的设备运行Android 5.1.1,我发现如果我使用 Toast.makeText(this, "This is a toast", Toast.LENGTH_SHORT).show(); 我懂了: 但是如果我使用getApplicationContext()而不是this , Toast.makeText(getApplicationContext(), "This is a toast", Toast.LENGTH_SHORT).show(); 我懂了: 两者都直接从活动中调用。 为什么是这样?

Android – 如何检测3D派对应用程序启动时

我目前正在开发一个平板电脑的应用程序,将在商店展示广告。 我需要为设置应用程序添encryption码保护。 为了实现这一点,我需要检测设置应用程序是在后台服务启动。 对于API低于API 21的设备,可以使用getRunningTasks()完成 。 不幸的是,这个方法现在已经被弃用了。 我试着用这个答案来实现我的目标,但事情并没有按照我的需要工作。 我试图听取V/WindowManager( 740): Adding window Window{1f4535ef u0 com.android.settings/com.android.settings.Settings} at 9 of 16 (before Window{e14eed2 u0 Starting com.android.settings})但我不能看到它作为一个输出。 我正在使用上面引用的答案的代码。 而不是烘烤它,我打印在logcat中。 你能告诉我我的目标可以实现API 21以上的Android版本吗? 我知道这是可能的,因为像智能AppLock这样的应用程序。 提前致谢!

相机的surfaceview不工作在android棒棒糖的操作系统

今天我遇到了surfaceview for camera customization Android surfaceview for camera customization一个问题。 我试了下面的代码。 当我捕捉图像时发生问题,它停止相机预览,并不返回到活动。 以下代码将在程序中执行。 我从stackoverflow上的现有参考中获取此代码 配套class。 public class AndroidCameraSurfaceview extends Activity implements SurfaceHolder.Callback { TextView testView; Camera camera; SurfaceView surfaceView; SurfaceHolder surfaceHolder; boolean preview; PictureCallback rawCallback; ShutterCallback shutterCallback; PictureCallback jpegCallback; int displayheight, displaywidth; Camera.PreviewCallback previewCallback; /** Called when the activity is first created. */ @Override public void […]

如何检查Android棒棒糖电池保护程序是否打开

Android棒棒糖引入了一种可随时开启的节电模式,当电池电量在15%或更低时,默认开启。 这对我的应用程序提出了一个问题,因为电池保护程序禁用提供重要信息的animation。 (为了提供上下文,我的应用程序允许用户configurationAndroid Wear手表;当他们保存一个新的“主题”时,我将主题移动到操作栏上的button上,以便知道保存的位置。animation是由电池保护程序禁用,没有任何反应,当他们打保存,我认为会混淆)。 那么,有没有一种方法来以编程方式确定电池保护程序是否打开? 这样我可以提供animation的替代方法,如显示吐司。