Git Product home page Git Product logo

google / fplutil Goto Github PK

View Code? Open in Web Editor NEW
331.0 42.0 49.0 13.35 MB

fplutil is a set of small libraries and tools that can be useful when developing applications for Android and other platforms.

Home Page: http://google.github.io/fplutil

License: Apache License 2.0

Shell 0.32% Python 64.69% CMake 0.78% C 2.45% Makefile 4.44% C++ 24.30% HTML 0.32% JavaScript 2.11% Batchfile 0.35% Objective-C 0.25%

fplutil's Introduction

fplutil Version 1.1.0

fplutil {#fplutil_readme}

fplutil is a set of small libraries and tools that can be useful when developing applications for Android and other platforms.

  • build_all_android is an all-in-one build script that allows you to build, install and run native (C/C++) Android apps from the command line. This is ideal for build automation, but can also be in a developer’s compile/run loop.
  • buildutil performs the configuration, build and archive steps of Android and Linux C/C++ applications using a suite of Python modules. This suite of modules can automate builds in a continuous integration environment.
  • android_ndk_perf is a desktop tool that enables native (C/C++) developers to measure the CPU utilization of their applications on Android, guiding their optimization efforts.
  • libfplutil enables C/C++ developers to write traditional applications (like Hello World) using "main()" and "printf()" on Android.

Goto fplutil's landing page for documentation.

Important: fplutil uses submodules to reference other components it depends upon so to download the source use:

git clone --recursive https://github.com/google/fplutil.git

To contribute to this project see CONTRIBUTING.

For applications on Google Play that integrate these libraries, usage is tracked. This tracking is done automatically using the embedded version string (kFplUtilVersionString). Aside from consuming a few extra bytes in your application binary, it shouldn't affect your application at all. We use this information to let us know if fplutil libraries are useful and if we should continue to invest in them. Since this is open source, you are free to remove the version string but we would appreciate if you would leave it in.

fplutil's People

Contributors

a-maurice avatar alexames avatar ggfan avatar hak avatar haroonq avatar jonsimantov avatar jsanmiya avatar laijess avatar mortonfox avatar mrhappyasthma avatar stewartmiles avatar vsrinivas avatar

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

fplutil's Issues

Supported device list

Hi there,

I've only seen 4 devices in SUPPORTED_DEVICES and BROKEN_DEVICES from the source code.

SUPPORTED_DEVICES = set([
'mantaray', # Nexus 10
'nakasi', # Nexus 7 (2012)
])
BROKEN_DEVICES = set([
'razor', # Nexus 7 (2013)
'hammerhead', # Nexus 5
])

And I've tested Nexus 5(hammerhead) and seen a warning message when I tried ./android_ndk_perf --apk testbed-debug.apk record -o perf.data.

WARNING: AOSP on HammerHead is not in the list of supported devices. It is likely that the
performance counters don't work so you may need to try a different device.

So I'd like to ask whether Nexus 6/5x is supported by Android perf, as I badly need to use to perf to profile my apk to show its run-time call graph. Thanks.

-mapcs-frame option not working with clang

I am not able to build my project with compiler flag - mapcs_frame for android_ndk_perf profiler. Clang++ compiler doesn't support this option. Is there any equivalent option for clang?

I am using the clang compiler shipped with NDK version 12.2.0.

python build scripts don't escape paths on Windows

Running with "-d @ -r" on Windows, I get the output:

BUILD SUCCESSFUL
Total time: 4 seconds
Subprocess returned 1
Traceback (most recent call last):
  File "build_all_android.py", line 212, in <module>
    sys.exit(main())
  File "build_all_android.py", line 171, in main
    adb_devices = [d.serial for d in env.get_adb_devices()]
  File "C:\w\lobster\dev\android\buildutil\android.py", line 1182, in get_adb_devices
    capture=True, shell=True)[0]
  File "C:\w\lobster\dev\android\buildutil\common.py", line 470, in run_subprocess
    raise SubCommandError(argv, process.returncode, stderr)
buildutil.common.SubCommandError: Error 1 running C as: C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe devices -l, stderr: {'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
}

Appears it should be quoting paths somewhere.

Security Policy violation Binary Artifacts

This issue was automatically created by Allstar.

Security Policy Violation
Project is out of compliance with Binary Artifacts policy: binaries present in source code

Rule Description
Binary Artifacts are an increased security risk in your repository. Binary artifacts cannot be reviewed, allowing the introduction of possibly obsolete or maliciously subverted executables. For more information see the Security Scorecards Documentation for Binary Artifacts.

Remediation Steps
To remediate, remove the generated executable artifacts from the repository.

First 10 Artifacts Found

  • libs/cardboard.jar
  • libs/libprotobuf-java-2.6-nano.jar
  • perf/bin/android-16/arch-arm/perf
  • perf/bin/android-16/arch-x86/perf
  • perf/bin/android-16/linux-x86/perfhost
  • perf/bin/android-17/arch-arm/perf
  • perf/bin/android-17/arch-mips/perf
  • perf/bin/android-17/arch-x86/perf
  • perf/bin/android-17/linux-x86/perfhost
  • perf/bin/android-18/arch-arm/perf
  • Run a Scorecards scan to see full list.

Additional Information
This policy is drawn from Security Scorecards, which is a tool that scores a project's adherence to security best practices. You may wish to run a Scorecards scan directly on this repository for more details.


Allstar has been installed on all Google managed GitHub orgs. Policies are gradually being rolled out and enforced by the GOSST and OSPO teams. Learn more at http://go/allstar

This issue will auto resolve when the policy is in compliance.

Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

Unable to run android_ndk_perf on Nexus 9

Following the instructions here: https://google.github.io/fplutil/android_ndk_perf.html. I run the following command:

cd liquidfun/Box2D/Testbed android_ndk_perf --apk bin/testbed-debug.apk record -o output/perf.data

This produces the following error:

WARNING: Nexus 9 is not in the list of supported devices. It is likely that the
performance counters don't work so you may need to try a different device.

run-as: exec failed for /data/local/tmp/perf: Permission denied
243
chmod: /data/data/com.google.fpl.liquidfun.testbed/perf.data: No such file or directory
1
0
Unable to make /data/data/com.google.fpl.liquidfun.testbed/perf.data readable.

Cannot build on linux

When I try to build with the latest ndk (r15) and build-tools I have that error:


The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager


Invalid or unsupported command "update project --path /usr/local/google/home/dmabin/dev/sample-jni/fplutil/libfplutil/unit_tests/test_main --target android-25 --name test_main"

Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk
Subprocess returned 2
Caught buildutil error: Error 2 running /usr/local/google/home/dmabin/Android/Sdk/tools/android as: ['/usr/local/google/home/dmabin/Android/Sdk/tools/android', 'update', 'project', '--path', '/usr/local/google/home/dmabin/dev/sample-jni/fplutil/libfplutil/unit_tests/test_main', '--target', 'android-25', '--name', 'test_main'], stderr: {not captured}

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.