<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lancelots的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lancelots</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lancelots]]></copyright><item><title><![CDATA[View控件获取键盘输入事件(一)]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/126976437</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/126976437</guid><author>lancelots</author><pubDate>Wed, 21 Sep 2022 17:01:16 +0800</pubDate><description><![CDATA[View控件获取键盘输入事件过程]]></description><category></category></item><item><title><![CDATA[Wifi关闭状态下获取Wifi列表]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/124289952</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/124289952</guid><author>lancelots</author><pubDate>Wed, 20 Apr 2022 09:46:14 +0800</pubDate><description><![CDATA[文件修改路径：frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiSettingsStore.java


  private boolean getPersistedScanAlwaysAvailable() {
//    return Settings.Global.getInt(mContext.getContentResolver(),
//        Settings.Global.W...]]></description><category></category></item><item><title><![CDATA[NDK开发趟坑之旅]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/108875118</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/108875118</guid><author>lancelots</author><pubDate>Tue, 29 Sep 2020 20:20:08 +0800</pubDate><description><![CDATA[Build command failed.
Error while executing process /Users/fenglei/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja with arguments {-C /Users/fenglei/AndroidStudioProjects/FFmpegNdkDemo/app/.cxx/cmake/debug/armeabi-v7a native-lib}
ninja: Entering directo]]></description><category></category></item><item><title><![CDATA[Android  7.0 运行时权限弹窗问题]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/104790172</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/104790172</guid><author>lancelots</author><pubDate>Wed, 11 Mar 2020 10:38:55 +0800</pubDate><description><![CDATA[Android 7.0系统在运行应用的时候,对权限做了诸多限制,normal, dangerous, signature, signatureOrSystem ,取决于保护级别，在确定是否授予权限时，系统可能采取不同的操作。
normal 表示权限是低风险的，不会对系统、用户或其他应用程序造成危害；
dangerous 表示权限是高风险的，系统将可能要求用户输入相关信息，才会授予此权限；
sign...]]></description><category></category></item><item><title><![CDATA[Android Studio导出jar包详细介绍（成功案例）]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/102689085</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/102689085</guid><author>lancelots</author><pubDate>Tue, 22 Oct 2019 20:10:26 +0800</pubDate><description><![CDATA[网上找了很多AS导出jar包的例子，但是我使用的时候总是各种问题，比如没有intermediates下没有bundles这种，现在我把我综合各种大佬们的讲解汇总我自己的方式。废话不多说，开整~

1.创建新的项目



选择Empty Activity就可以,project名称为testLib



2.在新创建的project里再新建Module,



选择Android Library,M...]]></description><category></category></item><item><title><![CDATA[执行sudo apt install yum时提示E: 无法获得锁 /var/lib/dpkg/lock-frontend - open]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/100927077</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/100927077</guid><author>lancelots</author><pubDate>Tue, 17 Sep 2019 15:15:27 +0800</pubDate><description><![CDATA[E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

解决方案：
1。终端输入 ps aux |grep apt，列出进程。找...]]></description><category></category></item><item><title><![CDATA[As报错：Lambda expressions are not supported at language level '7']]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/100107645</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/100107645</guid><author>lancelots</author><pubDate>Tue, 27 Aug 2019 20:12:40 +0800</pubDate><description><![CDATA[解决方案：

File-&gt;Project Structure-&gt;module



然后这两项选择自己默认的jdk版本，点击apply就可以了


]]></description><category></category></item><item><title><![CDATA[命令查看cpu信息]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/100033874</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/100033874</guid><author>lancelots</author><pubDate>Fri, 23 Aug 2019 11:09:56 +0800</pubDate><description><![CDATA[查看CPU的架构等信息



查看CPU的主频信息


]]></description><category></category></item><item><title><![CDATA[Vmware安装虚拟机遇到的坑]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/100018869</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/100018869</guid><author>lancelots</author><pubDate>Thu, 22 Aug 2019 17:12:20 +0800</pubDate><description><![CDATA[Window10系统昨晚9点提示更新，然后9点准时更新，今天早上开机发现VMware打开虚拟机报错：


无法获取 vmci 驱动程序版本： 句柄无效。
驱动程序 vmci.sys 版本不正确。请尝试重新安装 VMware Workstation。
打开模块DevicePowerOn电源失败


不知道怎么搞，然后重新网上搜索修改虚拟机安装的路径下的Ubuntu.vmx文件，如图：



找到这...]]></description><category></category></item><item><title><![CDATA[git pull报错error: :cannot open .git/FETCH_HEAD:Permission denied]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/98505890</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/98505890</guid><author>lancelots</author><pubDate>Mon, 05 Aug 2019 18:23:06 +0800</pubDate><description><![CDATA[项目需要通过git pull同步代码时出现报错：



问题分析：

.git/FETCH_HEAD权限没有和用户权限匹配。通过如下命令可以查看该文件权限：


ll -lh .git/FETCH_HEAD

最终解决方案：

赋予该文件夹下所有文件和该用户同等权限，比如你的登陆账号为admin,你的源码路径为/home/sourcecode命令如下：


chown -R admin:admin...]]></description><category></category></item><item><title><![CDATA[Android 8.0应用安装流程源码分析]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/89459488</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/89459488</guid><author>lancelots</author><pubDate>Mon, 05 Aug 2019 16:09:52 +0800</pubDate><description><![CDATA[应用安装大致有四中方式:

1,通过Adb进行安装,命令如下:


adb install xxx.apk

该命令是通过adb调用system/bin/pm脚本来生效的,命令对应的代码文件定义在commandline.cpp路径为system/core/adb/commandline.cpp

adb install命令在commandline中对应的方法是:


int adb_command...]]></description><category></category></item><item><title><![CDATA[Android  8.0系统 默认赋予应用权限]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/93723671</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/93723671</guid><author>lancelots</author><pubDate>Mon, 05 Aug 2019 16:09:20 +0800</pubDate><description><![CDATA[private PackageInfo getCallingPackageInfo(String pkgName,Context context) {
    try {
      return context.getPackageManager().getPackageInfo(pkgName,
          PackageManager....]]></description><category></category></item><item><title><![CDATA[android  Studio 安装NDK+CMake过程]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/98092494</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/98092494</guid><author>lancelots</author><pubDate>Thu, 01 Aug 2019 19:47:16 +0800</pubDate><description><![CDATA[项目需要使用jni开发，之前电脑没有安装过相关工具，现在咱们从头开始。

1，安装NDK和CMake,在Android Studio界面Ctrl+Alt+S进到settings界面，选中CMake和NDK,点击Apply,会自动安装





2，在项目中新建myJNI.java文件，和MainActivity同级目录就行，如图



3，编辑myJNI.java文件，代码如下：


packa...]]></description><category></category></item><item><title><![CDATA[git 分支切换时提示报错 cannot create directory at 'external/libunwind/aux': Invalid argument]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/97368614</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/97368614</guid><author>lancelots</author><pubDate>Fri, 26 Jul 2019 09:21:00 +0800</pubDate><description><![CDATA[之前在ubantu下系统下切换分支没有碰到过这个错误，在windows下使用git bash第一次碰到这个问题，最后定位问题发现aux是在Windows上是保留字， aux 是 windows 的音频设备，在任何地方都不能命名这样的文件/文件夹名称。尴尬了~，

解决方案：

1，修改这个文件夹的名称，不用aux了。

2，装虚拟机，虚拟机里面安装ubantu系统

3，重装系统，本机重新安装ub...]]></description><category></category></item><item><title><![CDATA[Android  默认赋予运行时权限]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/89327310</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/89327310</guid><author>lancelots</author><pubDate>Wed, 26 Jun 2019 11:33:08 +0800</pubDate><description><![CDATA[在进行系统定制时,内置应用会要求各式各样运行时权限,例如拨打电话和管理通话权限



为了避免用户没有留意而拒绝了应用的关键权限，我们必须对用户授权时的各种状态进行详细的分析。

用户在授予权限时存在三种状态：

允许—授权成功，授权结束。
拒绝—授权失败，下次申请仍会弹出提示框。如果权限是程序必须拥有的，则需要再次申请。
拒绝&amp;不再询问—拒绝一次后，下次会有该提示。若选择拒绝并且不再询...]]></description><category></category></item><item><title><![CDATA[Android  默认语言修改]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/89156091</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/89156091</guid><author>lancelots</author><pubDate>Tue, 09 Apr 2019 17:47:13 +0800</pubDate><description><![CDATA[最新ODM由龙旗和华勤切换到文泰,整个代码的目录结构相对比较混乱,修改默认输入法这么简单的事情,竟然让我颇费周折,下面我记录一下我如何定位修改默认输入法的位置,下次遇到类似问题可以顺着这个思路迅速定位和解决问题.

默认输入法一般都是定义在mk文件里的PRODUCT_LOCALES属性,所以我在项目里的full_base.mk文件中找到PRODUCT_LOCALES,并将第一个语言改为zh_CN
...]]></description><category></category></item><item><title><![CDATA[Android  在导航栏上添加一个截屏按键,点击进行截屏]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/86742626</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/86742626</guid><author>lancelots</author><pubDate>Fri, 01 Feb 2019 16:49:17 +0800</pubDate><description><![CDATA[项目中碰到要求在导航栏上添加截屏按钮的要求,因为正常截屏是在下拉状态栏中,客户截屏操作觉得太麻烦了,所以下面介绍如何实现该功能:

1,首先添加图标到导航栏上,如何添加图标请查询我之前的博客,链接:https://blog.youkuaiyun.com/lancelots/article/details/82864210

2,实现点击截屏,修改文件为PhoneStatusBar.java,路径framewo...]]></description><category></category></item><item><title><![CDATA[Android 8.0内置Wifi]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/86575376</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/86575376</guid><author>lancelots</author><pubDate>Mon, 21 Jan 2019 16:31:22 +0800</pubDate><description><![CDATA[Android 8.0系统内wifi的连接信息是保存在WifiConfigStore.xml文件中,路径是data/misc/wifi/WifiConfigStore.xml,user版本的系统是没有权限访问这个路径的,所以我是编译出userdebug版本进行调试的.下面介绍如何内置自己的wifi.多说一下,为什么要内置wifi?

我做的是工行的项目,像这种拥有支行或者分店比较多的公司,一般网络...]]></description><category></category></item><item><title><![CDATA[Android wifi提示已连接但是无法访问网络]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/86082013</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/86082013</guid><author>lancelots</author><pubDate>Tue, 08 Jan 2019 16:26:54 +0800</pubDate><description><![CDATA[Android6.0之后新增加了网络能力的标识类：NetworkCapabilities.java

路径:frameworks/base/core/java/android/net/NetworkCapabilities.java

public boolean hasCapability(int capability) {
 if (capability &lt; MIN_NET...]]></description><category></category></item><item><title><![CDATA[Android 系统进入设置项需要输入密码]]></title><link>https://blog.youkuaiyun.com/lancelots/article/details/85064635</link><guid>https://blog.youkuaiyun.com/lancelots/article/details/85064635</guid><author>lancelots</author><pubDate>Tue, 18 Dec 2018 16:00:58 +0800</pubDate><description><![CDATA[进入系统设置输入密码是由客户提到这点,所以这里我定制了这个功能,说一下我的思路:

    进入设置我让客户先进到关于平板的选项里,在关于平板的选项里第一条就是设置管控,点击设备管控会弹出输入密码框的提示,输入正确密码,然后退出关于平板界面,就可以看到设置里所有的选项了~

修改的文件我列出清单:
 1.packages/apps/Settings/AndroidManifest.xml
 2.p...]]></description><category></category></item></channel></rss>