全部 文章 问答 分享 共找到571个相关内容
[文章] 你的2019总结来了吗?【有奖征文】
你的年终总结写了吗?后面得写代码去实现抽奖的功能了。这一次,我们走一次人工流程。后面再用代码实现。要不要要来个抽奖呢?要的,为了拉低概率,赶紧参与吧!
[文章] Kotlin进阶学习1
写在前面在学习了Kotlin基础学习1,Kotlin基础学习2,Kotlin基础学习3之后,我们对Koltin的基础有了一定的了解。但就这样还是不够的,Kotlin里还有更多的特性等着我们去学习
2020-08-08 17:21 · Kotlin / 进阶
[文章] Kotlin进阶学习4
写在前面本文接上文:Kotlin进阶学习3。上次文章主要学习了泛型的一些基本用法,这次来学习一下泛型的进阶用法。这部分还是有很大的难度的,勉强记录一下。
2020-08-11 19:34 · Kotlin / 进阶
[文章] Kotlin进阶学习3
写在前面本文上接:Kotlin进阶学习2,在上次的文章里,我们学习了高阶函数。这次我们就来学习如何利用高阶函数简化Android中的各种常见操作,并且学习一下泛型的内容。
2020-08-10 16:08 · Kotlin / 学习
[文章] Kotlin基础学习3
写在前面本文上接:Kotlin基础学习2,在之前学习了Koltin中的Lambda表达式后,今天来学习我感觉能够让Kotlin成为谷歌推荐的安卓推荐编程语言的原因——空指针检查。
2020-08-07 17:06 · Kotlin / 基础
[文章] 总结使用SpringBoot+Dubbo创建服务提供者项目和服务消费者项目的流程
总结使用SpringBoot+Dubbo创建服务提供者项目和服务消费者项目的流程这是我学习的笔记,有什么不对请帮忙指出来(1)总结使用SpringBoot+Dubbo创建服务提供者项目的流程①创建SpringBoot
2020-06-19 23:26 · java / spring / SpringBoot / Zookeeperr / dubbo
[文章] 喜马拉雅项目总结
总结总的来说,安卓的开发与web的开发还是有很大的差别的,在安卓开发中,需要考虑很多的情况,而在web中很多情况都会被浏览器处理掉,如没有数据,网络错误,数据为空等等这都需要开发者去处理,但在web上我一直没有做过这方面的处理
2020-08-03 19:40 · 喜马拉雅项目 / 学习总结
[文章] 25000字总结Android优秀的第三方框架、各种学习资料(下) Camera、Video、指纹、聊天IM、投屏等
前言前几天总结了Android中常用到的系统组件、Design组件、自定义组件等等系列点击跳转地址:25000字总结Android优秀的第三方框架、各种学习资料汇集一系统组件、Design组件、自定义组件等等今天继续更新
2020-08-06 09:32 · android / 第三方框架
[文章] 关于View及TextView和EditText的一些属性总结
给初学者的一份属性总结,具体内容如下思维导图所示(应该够用了):View与TextView的属性对比TextView与EditText的属性对比
2020-06-18 14:10 · 安卓 / 控件 / 属性总结
[文章] Kotlin基础学习2
写在前面在前文:Kotlin基础学习中简单学习了Kotlin的基本语法知识,但这些还没有涉及到Kotlin中十分重要的Lambda编程以及非空指针校验等等特性。
2020-08-06 15:15 · Kotlin / 基础
[文章] Kotlin项目实战——天气预报类APP
写在前面在这篇文章之前,Kotlin的基础和进阶课程都已经学习完了。
2020-08-13 14:34 · Kotlin / 实战
[文章] 初涉安卓开发:Java基础知识详解与学习路径
标题:初涉安卓开发:Java基础知识详解与学习路径Java语言在Android应用开发中的基石作用。对于想要入门安卓开发的初学者而言,掌握扎实的Java基础知识至关重要。
2024-03-20 11:05 · 安卓开发 / java / 基础 / 基础知识 / 安卓
[文章] Kotlin进阶学习2
写在前面本文紧接上文:Kotlin进阶学习1。在之前我们学习了一些Kotlin的特性,这次接着来学习Koltin中一些有用的特性扩展函数介绍扩展函数是什么呢?
2020-08-09 15:49 · Kotlin / 进阶
[文章] 如何学习Flutter?
系统地学习Flutter,可以按照以下步骤进行:如何学习Flutter?1.环境配置与安装下载并安装FlutterSDK(确保获取最新稳定版)。
[文章] Kotlin基础学习
写在前面在刚开学的时候,买了一本《第一行代码Android》,但一直在上课没有机会看,这几天刚好写完了上一个项目,这段时间就对这本书进行了学习
2020-08-05 17:01 · Kotlin / 基础
[问答] 学习问题

我现在学习了安卓的各种基础知识,但是没有实战,学习喜马拉雅项目是不是可以快速巩固练习 各种安卓知识? 或者推荐一下项目。

2022-04-22 23:02 · 学习问题
[文章] 25000字总结Android优秀的第三方框架、各种学习资料(上)
说明以下内容博主很多也没有用过分享出来大家一起学习用到的时候可以来查看有问题可以沟通希望大家不要污染了学习环境如果觉得有帮助请点赞关注收藏一个礼貌的☺系统控件TextViewGithub一个功能强大的TextView
2020-05-18 19:56 · android
[文章] Kotlin进阶学习5
写在前面本文上接Kotlin进阶学习4,上次的文章学习了泛型的进阶知识,真是十分难理解的知识呢。这次(最后)来学习一下Kotlin中极具特色的协程。协程介绍什么是协程呢?
2020-08-12 17:24 · Kotlin / 进阶
[文章] 自学误区
1:打好基础,搞好基础概念,理清学习路线,不要盲目追求新技术。2:语言选择不分好坏。看兴趣,岗位,用途。3:拒绝封闭式学习。封闭,问题积累多,学习困难。敢于分享和交流,发现并解决问题。
2019-11-22 00:38 · 自学
[分享] 这是一份关于HTTP协议的学习总结
随着互联网的发展,网络已经越来越普及了,绝大多数的网络请求都是基于HTTP协议的,因此在开发中,了解HTTP的基本原理是必要的,在TCP/IP四层体系结构中,HTTP协议位于应用层,它是应用层主要使用的协议,应用层往下一层就是运输层,HTTP在运输层采用的是TCP协议来保证可靠传输,知道这些后,接下来详细介绍一下 Http。
2020-02-12 11:08 · http / 协议 / 总结 / tcp / udp
[问答] 求推荐学习kotlin的网站
师傅我看到现在很多项目都是用kotlin开发的,官方源码也用kotlin了,我觉得kotlin以后应该是开发Android的主流语言,师傅你是通过哪些途径学习kotlin的呢,除了官网还有其他网址吗?
2020-02-17 11:36 · kotlin
[文章] 总结原生Shiro的使用流程
总结原生Shiro的使用流程一、准备1.配置依赖<dependencies><!
2020-08-16 10:11 · java / shiro / 权限 / 框架
[文章] 开始学习Python的第一天
为什么学习python我为什么要学习python呢?~~因为我Java学的太水了~~自动化测试和数据分析需要,当然也可以搞后端开发。
1970-01-01 00:00 · python
[问答] 求初学Android学习路线

大佬们,刚开始学Android,拉大锯老师的B站课程学习顺序是啥,p1-p9学完之后再怎么学丫!?

2022-04-15 17:24 · Android学习路线
[文章] Android 卡顿工具Bumblebee和JankStats
performance-samples/blob/main/JankStatsSample/app/src/main/java/com/example/jankstats/JankLoggingActivity.kt总结总体来说是好的开始
2022-02-10 14:50 · Android / jank / 卡顿 / 性能优化
[文章] Jetpack学习笔记之BottomNavigationBars (8)
为了后续实战案例中,可以零基础入门,本节我们简单总结一下BottomNavigationView的知识点和使用方法。BottomNavigationView设计原则可以在底部展示3-5个导航菜单。
2020-10-16 00:16 · Jetpack / BottomNavigationView
[问答] Android基础学习之RecycleView

今天在学习大锯老师的RecycleView基础课程时,ListViewAdapter中拿view时参数上下文的parent报错,这个问题怎么解决呢

2022-09-09 18:34 · Android学习

[问答] 请问学习的源码怎么获得呀

请问学习的源码怎么获得呀

2021-12-02 17:11 · Android
[文章] android api 和 implementation 区别
顿感奇妙,百度一番发现总结api引入类似于public公开的其他模块都能使用这个资源implementation引入类似于private私有的只有当前模块才能引用。
2023-01-05 14:19 · android
[文章] 被公司试用总结(咸鱼大杂烩)
packageManager.setComponentEnabledSettingsetComponentEnabledSetting方法就是用来禁用Android系统中的四大组件。比如我想禁用一个服务。/***禁用组件*@paramcontext上下文*@paramclassName组件类名*/privatefundisableComponent(context:Context,className:String){valcomponentName=ComponentName(context,className)if(isComponentDisabled(context,componentName))return//已经禁用context.packageManager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP)}如果想重新启用的话,也是上面的方法,只是setComponentEnabledSetting第二个参数值不一样/***启用组件*@paramcontext上下文*@paramclassName组件类名*/privatefunenableComponent(context:Context,className:String){valcomponentName=ComponentName(context,className)if(isComponentEnabled(context,componentName))return//已经启用context.packageManager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP)}获取组件状态的方法,getComponentEnabledSetting,具体的代码如下,分别是获取可用状态和禁用状态的方法。/***组件是否处于可用状态*/funisComponentEnabled(context:Context,componentName:ComponentName):Boolean{valstate:Int=context.packageManager.getComponentEnabledSetting(componentName)returnPackageManager.COMPONENT_ENABLED_STATE_ENABLED==state}/***组件是否处于禁用状态*/funisComponentDisabled(context:Context,componentName:ComponentName):Boolean{valstate:Int=context.packageManager.getComponentEnabledSetting(componentName)returnPackageManager.COMPONENT_ENABLED_STATE_DISABLED==state}setApplicationEnabledSetting**setApplicationEnabledSetting()**方法是PackageManager提供的禁用app的方法,一般只能用来禁用自己,不能禁用其他app。context.packageManager..setApplicationEnabledSetting("com.example.viewtest",PackageManager.COMPONENT_ENABLED_STATE_DISABLED,0);其他参数介绍:COMPONENT_ENABLED_STATE_DEFAULT:恢复组件进入默认的状态COMPONENT_ENABLED_STATE_ENABLED:启用组件COMPONENT_ENABLED_STATE_DISABLED:禁用组件COMPONENT_ENABLED_STATE_DISABLED_USER:由用户禁用app,所以是可以重新启用的,只能setApplicationEnabledSetting()方法使用COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED:也是禁用app,但是使用者还是可以在界面上看到app,点击之后就会重新启用,状态改为enabled,只能setApplicationEnabledSetting()方法使用AudioManager探索AudioManager声音的模式(streamType)如下:AudioManager.STREAM_MUSIC媒体声音AudioManager.STREAM_VOICE_CALL通话声音AudioManager.STREAM_SYSTEM系统声音AudioManager.STREAM_RING电话铃声AudioManager.STREAM_ALARM闹钟声音AudioManager.STREAM_NOTIFICATION通知声音AudioManager.STREAM_BLUETOOTH_SCO蓝牙链接声音AudioManager的附加参数flags如下:AudioManager.FLAG_SHOW_UI调整时显示音量条(就是按音量键出现的那个)AudioManager.FLAG_PLAY_SOUND改变音量时播放声音AudioManager.FLAG_VIBRATE手机铃声进入振动铃声模式是否振动AudioManager.FLAG_ALLOW_RINGER_MODES更改音量时是否切换模式,比如响铃音量设置为0时是否开启震动模式AudioManager.FLAG_SHOW_SILENT_HINT由于静音模式,无法调整音量,请在用户界面中显示提示。AudioManager.FLAG_ACTIVE_MEDIA_ONLY指示仅当媒体正在活动播放时才应处理此问题。AudioManager.FLAG_SHOW_UI_WARNINGS就像FLAG_SHOW_UI,但是只有对话框警告和确认,没有滑块。AudioManager.FLAG_SHOW_VIBRATE_HINT阻止将音量从振动调低,在用户界面中显示提示。AudioManager的direction解释:AudioManager.ADJUST_RAISE增加铃声音量AudioManager.ADJUST_LOWER减小铃声音量。AudioManager.ADJUST_MUTE静音AudioManager.ADJUST_UNMUTE取消静音获取当前streamType的音量getStreamVolume(intstreamType);参数streamType:参考AudioManager的声音模式如:AudioManager.STREAM_MUSIC设置当前streamType的音量值设置方法一、直接设置当前音量值setStreamVolume(intstreamType,intindex,intflags);参数streamType:参考AudioManager的声音模式如:AudioManager.STREAM_MUSIC参数index:音量值参数flags:附加参数如AudioManager.FLAG_SHOW_UI(调整时显示音量条(就是按音量键出现的那个))设置方法二、渐进式设置音量值(类似按物理音量键一步一步到指定值)adjustStreamVolume(intstreamType,intdirection,intflags);参数streamType:参考AudioManager的声音模式如:AudioManager.STREAM_MUSIC参数direction:参考direction解释:如AudioManager.ADJUST_LOWER参数flags:附加参数如AudioManager.FLAG_SHOW_UI(调整时显示音量条(就是按音量键出现的那个))设置方法三、渐进式设置音量值adjustVolume(intdirection,intflags);参数direction:参考direction解释:如AudioManager.ADJUST_LOWER参数flags:附加参数如AudioManager.FLAG_SHOW_UI(调整时显示音量条(就是按音量键出现的那个))获取焦点(处理声音重叠问题)requestAudioFocus(OnAudioFocusChangeListenerl,intstreamType,intdurationHint)参数l:焦点切换监听参数streamType:参考AudioManager的streamType模式如:AudioManager.STREAM_MUSIC参数durationHint:参考如下durationHint参数AudioManager.AUDIOFOCUS_NONE用于指示未获得或丢失音频焦点或请求音频焦点。AudioManager.AUDIOFOCUS_GAIN(效果:重叠播放效果)用于指示未知持续时间的音频聚焦增益或音频聚焦请求。AudioManager.AUDIOFOCUS_GAIN_TRANSIENT(效果:播放时其他暂停,释放后其他继续播放)用于表示暂时获得或请求音频焦点AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK(效果:类似导航播报,原声音弱化,释放后恢复)用于表示暂时的音频焦点请求,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE(效果:播放时其他暂停,释放后其他继续播放)独占和瞬时音频焦点请求的示例是语音备忘录记录和语音识别,在此期间系统不应播放任何通知和媒体播放应该已暂停AudioManager.AUDIOFOCUS_LOSS(效果:获取焦点失败,没测出效果)用于指示持续时间未知的音频焦点丢失。AudioManager.AUDIOFOCUS_LOSS_TRANSIENT(效果:获取焦点失败,没测出效果)用于指示音频焦点暂时丢失。AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK(效果:获取焦点失败,没测出效果)用于指示音频焦点的丢失者可以如果要继续播放(也称为“回避”),请降低输出音量新的焦点所有者不要求其他人保持沉默。是否有媒体声音在播放(也可以处理声音重叠问题的产生)/***Android中判断是否有音频声音在播放(其他第三方应用)**@return*/privatebooleanisFmActive(){AudioManageram=(AudioManager)getSystemService(Context.AUDIO_SERVICE);if(am==null){returnfalse;}returnam.isMusicActive();}强制获取媒体焦点如:正在播放音乐,导航播报,音乐声音弱化或者直接停止,播报结束释放焦点自动播放原音乐/***强制获取播放焦点*/privatevoidfocusRequestAudio(){mAudioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);if(mAudioManager!=null){//Requestaudiofocusforplayback结束记得释放abandonAudioFocusintresult=mAudioManager.requestAudioFocus(audioFocusChangeListener,STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE);//Asuccessfulfocuschangerequest.if(result==AudioManager.AUDIOFOCUS_REQUEST_GRANTED){//播放自己的音频}else{//Afailedfocuschangerequest.获取焦点失败Log.e("snow","=testDemo==获取焦点失败====");}}}AudioManager.OnAudioFocusChangeListeneraudioFocusChangeListener=newAudioManager.OnAudioFocusChangeListener(){@OverridepublicvoidonAudioFocusChange(intfocusChange){//不知为什么只调用了一次Log.e("snow","=testDemo==focusChange===="+focusChange);}};@OverrideprotectedvoidonDestroy(){super.onDestroy();//释放声音的焦点if(mAudioManager!=null){mAudioManager.abandonAudioFocus(audioFocusChangeListener);}}静音模式/***静音模式*/publicvoidsilent(){mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);}震动模式/***震动模式*/publicvoidvibrate(){mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);}正常模式/***正常模式*/publicvoidnormal(){mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);}获取铃声模式/***获取铃声模式*/publicvoidgetRingerMode(){mAudioManager.getRingerMode();}获取音频模式/***获取音频模式*/publicvoidgetAudioMode(){mAudioManager.getMode();}AtomicInteger类中incrementAndGet与getAndIncrementgetAndIncrement方法是返回旧值(即加1前的原始值)incrementAndGet返回的是新值(即加1后的值)Android中SystemProperties类使用方法Android系统可以通过读取/system/build.prop文件查看系统属性。Systemproperties类在android.os下,路径为:/frameworks/base/core/java/android/os/SystemProperties.java方法详解:1.返回字符(String):android.os.SystemProperties.get(Stringkey,Stringdef);参数:key--键值,def--默认值返回值:有相应的键值,返回键值对应的字符,否则返回默认值抛出异常:键值超过32位2.返回整型(int):android.os.SystemProperties.getInt(Stringkey,intdef);参数:key--键值,def--默认值返回值:有相应的键值,返回键值对应的整型,否则返回默认值抛出异常:键值超过32位3.返回布尔型(boolean):android.os.SystemProperties.getBoolean(Stringkey,booleandef);参数:key--键值,def--默认值返回值:有相应的键值,返回键值对应的布尔型,否则返回默认值抛出异常:键值超过32位Android之ViewFlipper使用ViewFlipper的介绍和使用常用属性android:inAnimation//设置View或ImageView进入屏幕时使用的动画android:outAnimation//设置View或ImageView退出屏幕时使用的动画android:flipInterval//设置View或ImageView之间切换的时间间隔常用方法setInAnimation:设置View或ImageView进入屏幕时使用的动画setOutAnimation:设置View或ImageView退出屏幕时使用的动画showNext:调用该方法来显示ViewFlipper里的下一个View或ImageViewshowPrevious:调用该方法来显示ViewFlipper的上一个View或ImageViewsetFilpInterval:设置View或ImageView之间切换的时间间隔startFlipping:使用上面设置的时间间隔来开始切换所有的View或ImageView,切换会循环进行stopFlipping:停止View或ImageView切换静态导入代码如下<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ViewFlipperandroid:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="match_parent"android:flipInterval="2000"><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx1"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx2"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx3"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx4"/></ViewFlipper></LinearLayout>Activity代码publicclassViewpFilperextendsAppCompatActivity{privateViewFlippermFilper;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.viewpfilper);mFilper=findViewById(R.id.flipper);mFilper.startFlipping();}}在res目录下新建一个anim文件夹,然后新建right_in.xml、right_out.xml存放动画right_in.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="1500"android:fromXDelta="100%p"android:toXDelta="0"/></set>right_out.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="1500"android:fromXDelta="0"android:toXDelta="-100%p"/></set>最后在viewpfilper.xml布局文件中引用<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ViewFlipperandroid:id="@+id/flipper"android:layout_width="match_parent"android:layout_height="match_parent"android:flipInterval="2000"><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx1"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx2"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx3"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="centerCrop"android:src="@drawable/tx4"/></ViewFlipper></LinearLayout>动态导入在anim文件下再添加left_in.xml、left_out.xml。left_in.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="-100%p"android:toXDelta="0"/></set>left_out.xml<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:duration="500"android:fromXDelta="0"android:toXDelta="100%p"/></set>GestureDetector手势检测器,监听我们的手势动作修改ViewFliperActivitypublicclassViewpFilperextendsAppCompatActivity{privateViewFlippermFilper;privateGestureDetectormDetector;//手势探测器privateMyGestureListenermMyGestureListener;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.viewpfilper);mFilper=findViewById(R.id.flipper);//实例化SimpleOnGestureListener与GestureDetector对象mMyGestureListener=newMyGestureListener();mDetector=newGestureDetector(this,mMyGestureListener);mFilper.startFlipping();}@OverridepublicbooleanonTouchEvent(MotionEventevent){returnmDetector.onTouchEvent(event);}privateclassMyGestureListenerextendsGestureDetector.SimpleOnGestureListener{privatefinalstaticintMIN_MOVE=200;//最小距离//OnFling中根据X轴方向移动的距离和速度来判断当前用户是向左滑还是向右滑,//从而利用showPrevious()或者showNext()来显示上一张或者下一张图片@OverridepublicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX,floatvelocityY){if(e1.getX()-e2.getX()>MIN_MOVE){mFilper.setInAnimation(getApplicationContext(),R.anim.right_in);mFilper.setOutAnimation(getApplicationContext(),R.anim.right_out);mFilper.showNext();}elseif(e2.getX()-e1.getX()>MIN_MOVE){mFilper.setInAnimation(getApplicationContext(),R.anim.left_in);mFilper.setOutAnimation(getApplicationContext(),R.anim.left_out);mFilper.showPrevious();}returntrue;}}}Android修改屏幕亮度获取系统Settings中的亮度系统屏幕亮度值在(0~255)之间,只需要调用以下方法即可。/***1.获取系统默认屏幕亮度值屏幕亮度值范围(0-255)***/privateintgetScreenBrightness(Contextcontext){ContentResolvercontentResolver=context.getContentResolver();intdefVal=125;returnSettings.System.getInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS,defVal);}修改APP界面屏幕亮度,不会影响其他APP修改自身APP亮度,只需要在ActivityOnCreate方法调用如下代码即可。/***2.设置APP界面屏幕亮度值方法***/privatevoidsetAppScreenBrightness(intbirghtessValue){Windowwindow=getWindow();WindowManager.LayoutParamslp=window.getAttributes();lp.screenBrightness=birghtessValue/255.0f;window.setAttributes(lp);}修改系统Settings中屏幕亮度,影响所有APP修改系统Settings中的屏幕亮度,由于会影响到所有APP,需要申请修改Settings的权限android.permission.WRITE_SETTINGS如果非系统签名的APP,需要用户手动授权后才可以修改背光亮度。/***5.修改Setting中屏幕亮度值**修改Setting的值需要动态申请权限<uses-permission*android:name="android.permission.WRITE_SETTINGS"/>***/privatevoidModifySettingsScreenBrightness(Contextcontext,intbirghtessValue){//首先需要设置为手动调节屏幕亮度模式setScreenManualMode(context);ContentResolvercontentResolver=context.getContentResolver();Settings.System.putInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS,birghtessValue);}AIDL中的in/out类比java中的数据流的输出流和输入流。java中的输出输入是以内存为主体。Androidaidl中的inout主体是以方法实现类为主体。AndroidStudio编译单个Modulegradlew:your_module_name:task_name举例:gradlew:app:assembleReleaseadbinstall报错大全以及解决方法我们可以通过查看android源码来确认报错种类,查看android源码,进入frameworks/base/core/java/android/content/pm目录,打开PackageManager.java。文件中声明了各种报错的类型以及Errorcode。本文对adbinstall的报错类型全部列举出来INSTALL_FAILED_ALREADY_EXISTS=-1;解释:apk已经存在。解决:adbinstall-r强制安装INSTALL_FAILED_INVALID_APK=-2;解释:无效的apk解决:排查方式与INSTALL_FAILED_INVALID_URI类似INSTALL_FAILED_INVALID_URI=-3;解释:无效的apkuri路径解决:可能的原因1.2.文件权限问题,chmod更改文件权限。INSTALL_FAILED_INSUFFICIENT_STORAGE=-4;解释:系统空间不足,无法安装apk解决:清理系统空间INSTALL_FAILED_DUPLICATE_PACKAGE=-5;解释:重复报名,表示系统中已存在相同的报名apk解决:卸载系统中重复包名,或者更改自己的apk包名INSTALL_FAILED_NO_SHARED_USER=-6;解释:缺少shareduserdidINSTALL_FAILED_UPDATE_INCOMPATIBLE=-7;解释:安装的apk与系统中已存在的apk签名不兼容解决:重新给apk进行签名,或者卸载掉系统中的签名冲突的apk。INSTALL_FAILED_SHARED_USER_INCOMPATIBLE=-8;解释:安装apk的sharedUserId系统中已存在的apk不同,导致不能兼容覆盖安装解决:方法1:查看Androidmanifest中android:sharedUserId信息,修改与之前app的sharedUserId相同。方法2:卸载系统中的apk,再安装。INSTALL_FAILED_MISSING_SHARED_LIBRARY=-9;解释:打包的apk缺少sharedlibrary库解决:在AndroidManifest中添加<uses-libraryandroid:name="xxx"android:required="false"/>将如下的文件xml拷贝到/system/permission/下,注意文件权限<?xmlversion="1.0"encoding="utf-8"?><permissions><libraryname="xxx"file="/system/framework/xxx.jar"/></permissions>INSTALL_FAILED_REPLACE_COULDNT_DELETE=-10;解释:library库替换时无法删除INSTALL_FAILED_DEXOPT=-11;解释:apk预编译错误,缺少dex或者是空间不足导致解决:多存在源码编译apk出现,源码编译apk选择了预编译,优化dex,导致apk里面没有dex。需要去除apk的预编译。INSTALL_FAILED_OLDER_SDK=-12;解释:系统的Android版本过低了,apk不支持解决:修改app目录下的“build.gradle”文件,将其中的minSdkVersion、targetSdkVersion修改后保持跟设备的androidAPI版本一致。INSTALL_FAILED_CONFLICTING_PROVIDER=-13;解释:检查应用的provider的唯authority属性与系统中其他应用providerauthority属性命令相同,产生冲突并且安装失败。解决:修改provider的authority命名INSTALL_FAILED_NEWER_SDK=-14;解释:系统的Android版本过高,apk不支持解决:apk需要适配高版本的Android设备INSTALL_FAILED_TEST_ONLY=-15;解释:apk为测试版本解决:安装加-t参数,adbinstall-t*.apkINSTALL_FAILED_CPU_ABI_INCOMPATIBLE=-16;解释:安装的APK文件arm指令格式与模拟器/真机的CPU架构上不兼容解决:安装到兼容的cpu模拟器/真机,或者apk的so库适配对应的cpuarm架构。INSTALL_FAILED_MISSING_FEATURE=-17;使用了一个无效的特性INSTALL_FAILED_CONTAINER_ERROR=-18;解释:SD卡访问失败,早期的android设备版本会出现类似问题。INSTALL_FAILED_INVALID_INSTALL_LOCATION=-19;解释:无效的安装路径INSTALL_FAILED_MEDIA_UNAVAILABLE=-20;解释:Android应用安装位置当前不可用,早期android设备会出现类似问题INSTALL_FAILED_VERIFICATION_TIMEOUT=-21;解释:apk安装验证超时INSTALL_FAILED_VERIFICATION_FAILURE=-22;解释:安装验证失败解决:打开android设备的未知来源应用安装开关。INSTALL_FAILED_PACKAGE_CHANGED=-23;解释:应用被改变了,检测到应用的codePath或者ResourcePath改变了INSTALL_FAILED_UID_CHANGED=-24;解释:新安装的包分配了一个不同的UID解决:卸载app,并删除系统中的残留文件和文件夹,如/data/data,/data/app/,system/app/等目录中包含app残留文件。INSTALL_FAILED_VERSION_DOWNGRADE=-25;解释:安装apk的VersionCode低于系统内的解决:更改VersionCodeINSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE=-26;解释:新安装的apktargetSDK较之前的apk低。解决:修改targetSdkVersionINSTALL_PARSE_FAILED_NOT_APK=-100;解释:非apk文件INSTALL_PARSE_FAILED_BAD_MANIFEST=-101;解释:无法解析的AndroidManifest.xml文件INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION=-102;解释:apk安装异常错误INSTALL_PARSE_FAILED_NO_CERTIFICATES=-103;解释:缺少签名或者签名方式有问题解决:打开应用,查看META-INF目录下查看是否有CERT.RSA文件。修改build.gradle重新签名。另外一种情况:AndroidN后apk增加了v2签名,查看apk是否v1,V2签名都有。androidN以下设备如果安装只有V2签名的apk,则会报该错,需要将apk,V1,V2都签名。INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES=-104;解释:签名冲突解决:卸载系统中的apk,再重新安装。INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING=-105;解释:签名编码问题解决:查看签名格式是否合法正确INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME=-106;解释:apk里使用了无效的包名解决:检查包名命令是否合法,比如多余的空格,下划线等。INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID=-107;解释:无效的shareduserId,shareduserid值有问题。解决:查看Androidmanifest中usersharedid的定义是否有问题。INSTALL_PARSE_FAILED_MANIFEST_MALFORMED=-108;解释:MALFORMED,畸形的。Manifest是无效的文件解决:查看AndroidManifest是否有问题。检查manifest的元素和属性的命令是否规范INSTALL_PARSE_FAILED_MANIFEST_EMPTY=-109;解释:Manifest是空的INSTALL_FAILED_INTERNAL_ERROR=-110;解释:系统问题导致安装失败解决:模拟器空间不足INSTALL_FAILED_USER_RESTRICTED=-111;解释:用户权限问题,无法安装解决:android手机的调试权限问题,把usb调试权限打开。一般手机的usb调试权限在隐藏的开发者模式菜单项目里面。INSTALL_FAILED_DUPLICATE_PERMISSION=-112;解释:androidmanifest存在重复定义的permissionINSTALL_FAILED_NO_MATCHING_ABIS=-113;解释:应用的so库,没有匹配的CPU指令集架构解决:build.gradle中添加不同的cpuabi体系。Android系统签名实现的三种方式无论采用何种签名方式,如果想实现具有系统权限的应用,在APK生成时,都需要在AndroidManifest.xml中配置android:sharedUserId=“android.uid.system”,如下所示<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.xxxx.xxxx"android:sharedUserId="android.uid.system"></manifest>ubuntu环境编译该方式需要在安卓源码编译的环境下,在将APK打包至安卓系统升级包时,需要配置Android.mk文件,通过在配置LOCAL_CERTIFICATE参数时,将其设置为PRESIGNED,如果需要改APK具有系统权限,使用系统签名,则需要设置为platformLOCAL_CERTIFICATE:=platform或shared或mediaAndroidTV的一些术语AndroidTV:带有GTVSpackagesGoogleTV:带有GTVS-GTVpackagesCDD:CompatibilityDefinitionDocumentVSR:VendorSoftwareRequirements一显示方面亮度对比度饱和度清晰度色域空间sRGB/BT709/NTSC/DCI-P3色准HDR/HDR10/DolbyVisionLCD/LED/MiniLED/MicroLED/OLED二存储方面内存DDR三接口方面HDMI1.4/2.0/2.1数字DTMB模拟ATVVGAYpbprAVUSB2.0/3.0Camera四外围Wifi蓝牙遥控语音/远场语音Dialog、AlertDialog如何实现全屏1、全屏Dialog实现方式publicclassFullScrreenDialogextendsDialog{publicFullScrreenDialog(Contextcontext){super(context);}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);<!--关键点1-->getWindow().requestFeature(Window.FEATURE_NO_TITLE);Viewview=LayoutInflater.from(getContext()).inflate(R.layout.fragment_full_screen,null);<!--关键点2-->setContentView(view);<!--关键点3-->getWindow().setBackgroundDrawable(newColorDrawable(0x00000000));<!--关键点4-->getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT);}}android修改系统wifi默认状态wifi开关默认值android系统默认wifi开关状态是关,对应的初始值在frameworks/base/packages/SettingsProvider/res/values/defaults.xml文件中,对应字段<boolname="def_wifi_on">false</bool>将值修改为true即可默认打开wifi状态AndroidTv添加假待机Android13分析解决待机关机后wifi被关闭android系统复位(Reset恢复出厂设置)9.0源码分析Android9.0开机后打开Wifi流程和Wifi状态值的保存Android12.0源码系列之IMS(一)InputManagerServiceAndroidOverlay机制Android系统开发入门-11.添加hidl服务最后我在公司服务器上添加hidl失败了,在网上找了很多文章都没有成功。有没有大佬会添加hidl的。教教孩子一个hellword呗~~
2023-08-27 11:04 · android / Tv / hidl / framework
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 20