Share My Creation jMashProjectProfile: Project Profiling & Distribution Tool

Hi Everyone

jMashProjectProfile for now seeks to address the problems of 1. Project Distribution and 2. Project Analysis

What do we mean about Project Distribution? When one distributes a project, the current compression does not include the external libraries used in the project. One has to search for those on the website when they have to run the project. With jMashProjectProfile, when you distribute your project, the project is compressed including the external libraries used in it, including all the files used and all the shared code modules used into a single structured project zip file.

And Project Analysis? Well, at times you want to invoice a client based on the number of code lines or subroutines or whatever methodology you use based on the code, or you just want to know the stats of your project. The project analysis reports then provide you some summary reports about your project. The code lines counted is the number of lines in the file as read with File.ReadList.

Some silly assumptions

1. You have an external libraries folder(s) per b4a, b4i and b4j project.
2. You have an external shared folder(s) per b4a, b4i, b4j project.
4. You have b4j installed.


1. Start jMashProjectProfile app after you extract it. The libraries used in this project are in the libraries folder insize the zip file. That zip file was distributed with jMashProjectProfile. ;)
2. On each b4a, b4i, b4j menu, select the appropriate folder for Internal & External Libraries and Shared Code Folder. Internal Libraries are the Program Files/Anywhere Software\Libraries folder for each installation. This is important for each project you profile. For example, if profiling a b4a project, the Internal, External and Shared Code folders will be checked first.
3. Go to File > Open Project to profile the project you want. You can choose a b4a, b4i and b4j project for now.
4. On the tree, select the first item which will be the project name for a summary report, then Modules, then Files, then Libraries, then Report to view the various reports the app will generate. Selecting these items also generates the respective reports in html format, found in the Objects folder of jMashProjectProfile.
5. When you want to distribute your project, select Distribute which will create a folder and then a zip file for your project.
6. The app keeps track of previously opened projects and you can find them from the File menu.
7. Explore the screen dumps for details.

There are some more things I plan to do with this... for example.

1. Remove all blank lines from code files
2. Format the source code
3. Remove all comments - comments form part of your final apk, ipa and jar and bloats your final app. Well, removing comments is not wise.
4. Find unused sub routines and comment these out. I use single based modules for my apps and some unneccessary code at times becomes part of the app e.g. the jMash module attached here.
5. Find unused libraries in projects. I could use some help with that, dont have a clue yet of how I can do that.


ps: if you have any ideas that we could add to this, you are welcome and thanks.


  • projectprofile.png
    28.7 KB · Views: 3,834
  • Distribution.png
    14.9 KB · Views: 600
  • distributionfiles.png
    28 KB · Views: 530
  • files.png
    113.7 KB · Views: 548
  • libraries.png
    115.9 KB · Views: 595
  • projectsummary.png
    38.5 KB · Views: 557
  • setdependencies.png
    15 KB · Views: 501
  • report.png
    67.5 KB · Views: 549
    88.9 KB · Views: 445


Licensed User
Longtime User
Version 2 now includes: First post has latest version

1. Reports folder where all reports per project will reside
2. Distribution folder where all distributable .zip files will reside
3. Profiles folder where all project files will be temporarily processed. This folder will remain empty after processing as its temporal.


  • jMashProjectProfile.b4j
    81.2 KB · Views: 415
Last edited:


Well-Known Member
Licensed User
Longtime User
Wow, I have 160,000 lines of code! Lol! I figure not counting white space and comments... maybe 100,000 lines. Nice job @Mashiane!!! I always wondered.