标签: android-framework

从本机客户端的应用程序的uid/pid获取包名称和签名

这是我在android平台上的第一个项目,我对这个环境感到不舒服.

我需要编写一个本机应用程序,它可以从[应用程序的用户ID和运行应用程序实例的pid]中派生应用程序包名称和签名.

我浏览了android应用程序框架,发现PackageManger有能力获取包签名."..getPackageManager().getPackageInfo(packageName,GET_SIGNATURES).."

但是,这显示了在Java应用程序中从包名称获取签名的可能性.正如我所说,我们的输入参数只是应用程序的用户ID /运行实例进程ID.而且我还需要本机客户端而不是java应用程序.

我的问题可以分为以下几点.

  1. 有没有办法从本地程序中运行应用程序的uid和pid获取包名?如果无法使用本机客户端,也欢迎使用Java方法.

  2. 有没有办法从包名中获取签名?正如我所说,我已经找到了它的java解决方案.

  3. 本机客户端是否可以使用Binder服务?这种方法会帮助我解决问题吗?如果是这样,怎么样?

提前致谢!

android android-ndk android-framework

6
推荐指数
1
解决办法
9434
查看次数

什么是"android:"前缀在android framework-res模块中的含义

我从framework-res模块中的styles.xml文件中复制此代码

<style name="Theme">

    <item name="colorForeground">@android:color/bright_foreground_dark</item>
    <item name="colorForegroundInverse">@android:color/bright_foreground_dark_inverse</item>
    <item name="colorBackground">@android:color/background_dark</item>
Run Code Online (Sandbox Code Playgroud)

.

<style name="Theme.Black">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:colorBackground">@android:color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)

如您所见,它们都有一个属性名称,其值为windowBackground.但是formar有一个android:而后者没有.是否真的有必要android:在android框架中编写前缀?

android android-framework android-resources

6
推荐指数
1
解决办法
1940
查看次数

Android Studio - "在项目中检测到Android框架"

我正在使用Android Studio进行开发(I/O Preview 0.2.3),并且在我开始当前项目后使用了AS.每次打开项目时,我都会Frameworks detected: Android framework is detected in the project Configure在事件日志中收到消息.我可以点击Configure并立即对事情进行排序,但每次打开项目时都会发生.

它并没有真正引起任何问题,更多的是烦恼而不是任何事情.有没有让AS记住这是一个Android项目?

android android-framework android-studio

6
推荐指数
1
解决办法
2万
查看次数

如何防止片段的onCreateView()被调用?

所以这是我的代码.'currentFragment'只是一个跟踪当前显示内容的字段.这是一个本身就是片段的类(所以我有一个显示片段的片段).

private void selectNavBarItem(NavbarItem v)
{
    Fragment fragmentToUse = null;

    if (v == setpointsNavItem)
    {
        fragmentToUse = setpointsFragment;
    }
    else if (v == rapidSetupNavItem)
    {
        fragmentToUse = rapidSetupFragment;
    }
    else if (v == outdoorResetNavItem)
    {
        fragmentToUse = outdoorResetFragment;
    }
    else if (v == rampDelayNavItem)
    {
        fragmentToUse = rampDelayFragment;
    }

    if (fragmentToUse != null)
    {
        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();

        if (currentFragment != null)
        {
            ft.detach(currentFragment);
        }

        currentFragment = fragmentToUse;

        if (currentFragment.isDetached())
        {
            ft.attach(currentFragment);
        }
        else
        {
            ft.add(R.id.setup_content_holder, …
Run Code Online (Sandbox Code Playgroud)

android android-framework android-fragments

6
推荐指数
2
解决办法
3924
查看次数

如何解决java.lang.NoSuchMethodError:android.widget.AbsListView.isItemChecked

我正在针对API Level 11(3.0)编译Android项目,我有这样的代码:

if (parent instanceof AbsListView) {
    checked = ((AbsListView)parent).isItemChecked(position);
}
Run Code Online (Sandbox Code Playgroud)

当我在3.0之前(低于API级别11)设备运行时,我收到此错误:

java.lang.NoSuchMethodError: android.widget.AbsListView.isItemChecked
Run Code Online (Sandbox Code Playgroud)

AbsListView文档中,isItemChecked声明具有API级别1兼容性,那么为什么我会收到错误?

android android-framework

5
推荐指数
1
解决办法
2850
查看次数

编舞如何工作

我刚刚研究了Android框架的代码(v4.1).

我知道invalidate()现在触发的UI消息直接发布到Choreographer而不是UI messageQueue,并且在下一个VSYNC信号到来之前不会执行这些消息.

在执行此post操作之前,ViewRootImpl调用Looper postSyncBarrier()一次以阻止UI MessageQueue,这意味着稍后发送到messagesQueue的消息将不会被执行,直到该块被删除,这在函数之前发生performTraversals().

基于以上理解,

如果invalidate()在其中的某个地方performTraversals()(例如onDraw()任何视图实例)中调用了另一个,则永远会阻止UI messageQueue?

从实际观察中,我知道这种情况从未发生过.
那么,我哪里错了?

android android-framework

5
推荐指数
1
解决办法
455
查看次数

NotificationListenerService停止并且无法重新启动而无法重新启动

使用android 4.4我发现有些用户正在使用我已实现的notificationListenerService将停止工作.我自己也见过这个.

我从来没有设法在它发生的时候捕获任何日志,但即使进入通知访问部分并关闭和重新开启通知访问也无济于事.

有什么东西可以导致这种情况发生.我不确定我的应用程序是否崩溃并造成这种情况,但即使这样,重启监听器的唯一方法就是重启手机.还有另一种方法可以启动我的应用程序从侦听器服务接收通知吗?

我还得到用户在更新应用版本时遇到此问题的报告.

我已经尝试将日志放入onCreate/onDestroy方法,以查看停止时是否记录了任何内容,但调用了onUnbind,onDestroy,但是没有输入任何这些方法,所以我猜他们一旦停止就不会被调用.

编辑: 在发生这种情况之后我捕获了一个错误报告,并且日志的有趣部分看起来像是:

12-30 15:33:58.731 16194 16194 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendOrderedBroadcast:1192 android.app.ContextImpl.sendOrderedBroadcast:1183 android.content.ContextWrapper.sendOrderedBroadcast:390 com.android.settings.applications.ProcessStatsDetail.checkForceStop:314 com.android.settings.applications.ProcessStatsDetail.onResume:108 
12-30 15:33:58.741   780   780 V NotificationService: disabling notification listener   for user 0: ComponentInfo{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.NotificationListener}
12-30 15:33:58.741   780   780 V NotificationService: disabling notification listener for user 0: ComponentInfo{lovetere.flashme/lovetere.flashme.accessibilityservice.ServicePostKitKat}
12-30 15:33:58.741   780   780 V NotificationService: enabling notification listener for user 0: ComponentInfo{com.example.android.navigationdrawerexample/com.example.android.navigationdrawerexample.NotificationListener}
12-30 15:33:58.741   780   780 V NotificationService: enabling notification listener for user …
Run Code Online (Sandbox Code Playgroud)

android android-notifications android-framework

5
推荐指数
1
解决办法
1772
查看次数

通过编辑AOSP来支持Android导航栏

我想通过编辑AOSP将导航栏(具有系统软键,如背面,主页和菜单,而不是导航抽屉!)放在(右)侧,如下所示.

+-------------------------------------------------+---+
| Status bar (always)                             |   |
+-------------------------------------------------+ N |
| (Layout with background drawable)               | a |
| +---------------------------------------------+ | v |
| | Title/Action bar (optional)                 | |   |
| +---------------------------------------------+ | B |
| | Content, vertical extending                 | | a |
| |                                             | | r |
| +---------------------------------------------+ |   |
+-------------------------------------------------+---+
Run Code Online (Sandbox Code Playgroud)

到目前为止,我假设RenderSessionImpl.java是要编辑的文件来完成此任务,因为它呈现的屏幕布局取决于给定的屏幕方向值.

我找到了下一个片段并编辑了方向参数(HORIZONTAL - > VERTICAL),因此它会创建一个水平布局,右侧是导航栏.

if (mNavigationBarOrientation == LinearLayout.HORIZONTAL &&
        mNavigationBarSize > 0) {
    // system bar
    try {
        NavigationBar navigationBar …
Run Code Online (Sandbox Code Playgroud)

android android-source android-layout android-framework

5
推荐指数
1
解决办法
6431
查看次数

Android Lollipop 中的信号 33 是​​什么?

我最近观察到信号 33 崩溃,但找不到对此的解释。该信号通常应用于 system_server 进程,但我找不到有关为什么应用它或哪个进程应用它的任何详细信息。此外,这在 Lollipop 之前的任何版本中都从未见过。那么,从 Lollipop 开始对框架进行了哪些更改?

android signals android-source android-framework

5
推荐指数
1
解决办法
1038
查看次数

如何直接加载应用程序而不启动主屏幕

当android设备开机时,是否可以在不启动主屏幕的情况下加载一个特定的应用程序?

如何进行此更改?

在哪里更改代码

将权限设置为boot_completed可以正常工作,但在加载应用程序之前,主屏幕会显示5秒钟.如何禁用Android在我的应用程序之前显示任何主屏幕启动器

android android-package-managers android-framework android-launcher

5
推荐指数
1
解决办法
910
查看次数