Giter VIP home page Giter VIP logo

hardcoder's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hardcoder's Issues

通过aar引入依赖失败

Hardcoder的测试工程是源码依赖的,可以正常运行;但是修改成aar依赖报找不到依赖的错误:
ERROR: Failed to resolve: com.tencent.mm.hardcoder:app2sys:1.0.0
Show in Project Structure dialog
Affected Modules: testapp

startPerformance error disconnect

我自己新建一个DEMO工程,初始化代码拷贝于testapp,并保持与testapp包名一致:com.tencent.mm.hardcoder.testapp
但是初始化的时候有error输出:
com.tencent.mm.hardcoder.testapp E/HARDCODER: [localsocket.h,loop:198]"loop, recv error, fd:61, ret:0, errno:0"
com.tencent.mm.hardcoder.testapp E/HARDCODER: [client.h,recvEvent:161]"LocalsocketClient recvEvent EVENT_ERROR: uid:0, path:(null), fd:61. Reconnect now."
然而Hardcoder-master\testapp运行正常,请问这是什么情况?

Android TV厂商对接需求

您好,请问TV厂商ROM侧希望对接这套框架应如何开启合作?是否有相应rom侧规格书?我负责康佳Android TV/板卡 系统软件部分,希望能够讨论对接,感谢。
我的公司邮箱:[email protected]

registerANRCallback接口疑问

手机:huawei Mate20
现象:使用Hardcoder demo app,对registerANRCallback进行测试,本进程发生ANR之后,没有ANR的回调通知。

是不是华为没有对此接口实现?

疑问解答

这里针对大家一些疑问进行解答。

  1. 防止资源抢占和滥用
    Hardcoder 所有调用只是 APP 发出的请求,具体是否对请求进行响应仍然取决于系统。
    系统对 Hardcoder 请求会有一定限制,只有 APP 在前台时允许请求资源,在后台时请求会被忽略,同一时间只有当前在前台的一个 APP 的请求会被响应。因而多个 APP 都接入了 Hardcoder 的情况下也不会出现资源抢占。
    另外,系统通过限制请求的最长持续时间等方法避免出现滥用请求的情况。

  2. 耗电
    通过 Hardcoder 进行通信,APP 作为请求方可以准确地在需要资源的场景的开始和结束时间通知到系统侧,从而保证系统分配的资源时机的精细和准确,因此引起的耗电量的增加也能最大化作用于性能提升。
    在微信上使用 Hardcoder 得到了平均 10%-30% 的性能提升,同时仅增加了 2% 的电量消耗,相当于用 2% 的功耗换取平均 20% 的性能提升,这个效果是比较满意的。
    而同一时间只有前台 APP 的请求会被系统响应,所以对手机整体来说,增加的耗电量是所有 APP 耗电的平均值,而不是所有 APP 的叠加。

  3. APP 优先级
    APP 接入方法见 FAQ 文档。对已实现自助接入和无需申请的厂商,APP 可以直接使用 Hardcoder,对需要申请的厂商按照方法申请后使用。对已允许接入 Hardcoder 的 APP ,厂商不会再对不同 APP 做优先级处理。

问题反馈:不支持华为、三星?OPPO性能提升不明显,底层socket连接不稳定?

Hardcoder_testapp测试调研

测试机型分类

机型不支持

华为

三星

机型支持,但需要申请权限

小米

魅族

机型支持,鉴权通过

OPPO

初始化

鉴权

性能对比

未开启hardcoder

开启hardcoder

开启hardcoder,性能并未得到明显提升,而且底层socket连接不稳定,容易断开,需要重新初始化。

测试结果分析

使用hardcoder需要满足2个条件,首先机型支持hardcoder,然后app拥有使用hardcoder的权限,才可以使用。

官方文档显示华为和三星默认支持hardcoder,不需要请求使用权限,昨天实际测试2个华为机型(系统为6.0和8.0),一个三星(系统9.0)均不支持hardcoder。

另外测试小米和魅族,系统均为8.0,这两个机型都支持hardcoder,满足第一个使用条件,接下来需要申请使用权限,才能真正使用hardcoder。后续可以用小米测试,邮件联系小米官方人员,申请使用权限,权限下来后再进行后续性能测试。

使用OPPO测试, 机型支持hardcoder,鉴权通过,开启hardcoder之后,性能提升不明显,底层socket连接不稳定,容易断开,需要重新初始化后,再使用。

startPerformance, ret:-6

华为荣耀9X,HLK-AL00,EMUI6.1.1
发现集成Hardcoder后应用性能下降。
testapp,startPerformance显示toast:startPerformance, ret:-6

I want to remove this module from my device, what should I do?

Frankly, as the greatest technology company of the world, Tencent, is a goodlike that I could not help appreciate.

However, I do not use wechat regularly, especially those modules except for chatting. i.e. I don't play games or do my work on wechat, but more oftenly turning to terminal. That 's because I am a coder like who you are. If not for my mom, my classmates, friends using wechat, I will not even chat on it.

I play games outside of wechat, and undoubtedly, it is a must to keep my eyes on wechat because I don't want to have the emergancies ignored. So, I would not close wechat activity when I am entertaining. But Hardcoder just harm the game performances!

I could not forget that time when I am playing League Of Legends: Wild Rift, my FPS got below 8. Annoying! I checked the panel then, and discovered wechat was doing some incredible computing, during which my phone got extremely hot. Ultimately, the game ended up defeat. I felt bad, and angry.

I do want to remove it, please show me how! Thanks!

依赖无法拉取

Failed to resolve: com.tencent.mm.hardcoder:app2sys:1.0.0
这个需要配置什么仓库吗

目前使用华为、OPPO、XiaoMi测试无效果

使用了最新master testapp QuickStart进行测试
以下进行都无效果,startPerformance的测试时间开关hardcoder与否都差不多一致
具体测试机型信息:

机型 系统 效果
HUAWEI BKL-L09 Android 9 不明显
Xiaomi MI 8 Android 9 不明显
OPPO R17 Android 8 不明显

其它品牌手机VIVO,三星等尚未测试

厂商端接入有相关端指南吗?

我们开发自己端Rom, 有高通, Mtk 和 Rockchip 平台, 希望在设备端接入, 有相关的文档供参考吗?
我浏览了相关端介绍, 都是App端接入端的介绍。

demo 是直接可用的吗? 在 oppo vivo 华为上都测试过, 第一次请求成功, 后续 requestId 都是-3

VIVO
初始化也没有成功,
createSocket, connect failed ret:-1 fd:62 path:mmServer

执行 requestCpuHighFreq 也失败
"requestCpuHighFreq, requestId:-3, scene:101, action:1, level:1, timeoutms:10000, tid:29082, timestamp:" PRId64

oppo
init 成功
但是在 check_permission 时 回调返回失败:
checkpermission callback, isSuccess: false

执行 requestCpuHighFreq 前几次, requestId 正常, 后续requestId 都是-3
requestCpuHighFreq, requestId:1570676296514410

后续再多执行几次时, initHardCoder 回调 isConnectSuccess: false 同时 requestId = -3
但是过一会 又正常了
是断开了会自动重连吗?

华为
结果和 oppo 差不多一样 init 成功,
前几次 requestCpuHighFreq requestId 正常 后续就不正常了.
但是过一会就又好了.

以上这些都正常吗?

demo中打开HardCoder按钮没有实际功能

    /**
     * open/close Hardcoder
     */
    hcSwitchBtn = ((Button) findViewById(R.id.hc_switch));
    hcSwitchBtn.setText(hcSwitch ? "Hardcoder state: opened" : "Hardcoder state: closed");
    hcSwitchBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            hcSwitch = hcSwitch ? false : true;
            if(hcSwitch) {
                hcSwitchBtn.setText("Hardcoder state: opened");
            } else {
                hcSwitchBtn.setText("Hardcoder state: closed");
            }
        }
    });

gradlew assembleDebug报错

D:\Hardcoder>gradlew assembleDebug

Configure project :libapp2sys
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to E:\sdk\ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

[!] There's no any build-info values, skip injecting build-info module.

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':libapp2sys'.

java.lang.NullPointerException (no error message)

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insigh
    ts.

  • Get more help at https://help.gradle.org

BUILD FAILED in 0s

建议:push 上游,谷歌官方纳入你们的设计理念。

强烈建议优先让谷歌上游层面纳入你们这么优秀的设计。
而不要只为**手机和系统设计这么一个东西。

越过谷歌,你们整一个暴力功能。难怪国外对**公司不信任。

这样只会败坏**硬件,软件厂商的诚信和声誉。

如果能得到世界其他开发人员的一致好评,那你这个东西,就能走出封闭的圈子,做大做强。而不是成为一个人人喊打的过街之鼠。

不同应用之间是否有影响?

请问下 这个方案,这个方案是针对进程的吗?比如app1 提频了,只是app1受益,还是其他app也会提频?

再问下,app有多个进程,是要分进程提频吗?

是否有方法可以判断对应rom是否需要CheckPermission呢

文档说明:
CheckPermission
CheckPermission 用于把鉴权值发送到系统侧验证 APP 是否具有使用 Hardcoder 的权限。不同厂商对 checkPermission 的实现不一样,具体请参见常见问题中 1。

对需要鉴权的厂商,必须调用 checkPermission 接口把鉴权值传入才可使用 Hardcoder;对没有实现 checkPermission 接口的厂商,系统不会有对应 callback,因而后续请求调用不应依赖于 checkPermission 的回调。

问题:
对于没有实现checkPermission接口的厂商,CheckPermission不会有callback,在initHardcoder后如何确定可以调用startPerformance提升性能呢?
是否可以有方式判断出,当前rom不依赖CheckPermission, 或增加CheckPermission中的callback

Android 手机厂商接入Hardcoder

您好,我是蔚来手机系统开发人员,希望能和贵司进行微信Hardcoder功能的合作,请问能否提供贵司商务和技术同事的联系方式?方便后续进行合同签署、商务沟通、技术联调等工作,感谢!

我的邮箱:[email protected]

v7a的so没有效果

将libapp2sys 中的build.gradle 分别修改为 v7a 和 v8a
abiFilters 'armeabi-v7a',

abiFilters 'arm64-v8a',

测试mainActivity 中的start_performance,发现:
HardCoderLog.i(TAG, "startPerformance, ret:" + ret + " take " + (System.currentTimeMillis() - s) + " ms");
打印出的耗时,v7a 在3800ms左右, v8a在3400ms左右,两者差距400ms;

测试机型:huawei mate 20 pro & mate 20X

从日志看并无异常,麻烦帮忙看下

hardcoder鉴权疑问

1.为什么我在demo改了oppo的certs值,鉴权也是返回通过Hardcoder.QuickStart: checkpermission callback, retCode:0
2.我在自己的app上,用了OPPO官网申请的鉴权值,一直返回-10001

Geeni

Software update stopped streaming. Has to be a simple fix . try it

GFileUtils

编译失败提示Could not get unknown property 'GFileUtils' for project ':libapp2sys' of type org.gradle.api.Project.

更新摘要

2019.10.22 更新厂商支持具体机型列表,见常见问题2;增加测试方法,可将 APP 包名修改为 testapp包名测试 APP 效果,即可无需申请接入权限使用 Hardcoder 进行测试。

SM只支持国内的机型吗?

海外的机型支持吗?
我测试S10 Android Q的时候SystemProperties里并没有persist.sys.hardcoder.name 这个字段

鉴权风险

鉴权的参数都是APP自己传的,包括密钥和uid,如果第三方APP被逆向了,密钥和uid被伪造,岂不是有风险?binder在Framework层获取uid相对风险可控,server端可以根据uid和包名做校验

华为效果不明显

机型:华为p30
开启和关闭hc的日志如下:
2019-10-10 15:01:07.256 1646-2369/com.tencent.mm.hardcoder.testapp I/hardcoder.MainActivity: startPerformance, ret:175159058 take 3261 ms
2019-10-10 15:01:20.943 1646-2479/com.tencent.mm.hardcoder.testapp I/hardcoder.MainActivity: startPerformance, ret:0 take 3306 ms

不明显呀怎么破?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.